Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/146.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
类函数给出垃圾值 我是C++初学者。我创建了一个名为Cache的类,并使用构造函数创建了一个对象缓存。我将参数传递给构造函数并正确打印计算数据。但当我在同一个类和同一个对象中调用不同的函数时,我在构造函数中生成的数据会给出垃圾值。在这里,我想提到我的所有函数和变量都是公共的_C++ - Fatal编程技术网

类函数给出垃圾值 我是C++初学者。我创建了一个名为Cache的类,并使用构造函数创建了一个对象缓存。我将参数传递给构造函数并正确打印计算数据。但当我在同一个类和同一个对象中调用不同的函数时,我在构造函数中生成的数据会给出垃圾值。在这里,我想提到我的所有函数和变量都是公共的

类函数给出垃圾值 我是C++初学者。我创建了一个名为Cache的类,并使用构造函数创建了一个对象缓存。我将参数传递给构造函数并正确打印计算数据。但当我在同一个类和同一个对象中调用不同的函数时,我在构造函数中生成的数据会给出垃圾值。在这里,我想提到我的所有函数和变量都是公共的,c++,C++,我的代码如下所示: main.cc: #include <stdio.h> #include <fstream> #include <stdlib.h> #include <assert.h> #include <string.h> #include "cache.h" main() { unsigned long long Address= 5555555555; unsigned long a=5,b=7;

我的代码如下所示:

main.cc:
#include <stdio.h>
#include <fstream>
#include <stdlib.h>
#include <assert.h>
#include <string.h>
#include "cache.h"
main()
{
    unsigned long long Address= 5555555555;
    unsigned long a=5,b=7;
    Cache L1Cache(a, b);
    L1Cache.Calculate( Address);
}

cache.cc:
#include <stdio.h>
#include <iostream>
#include <fstream>
#include <assert.h>
#include <string.h>
#include <stdlib.h>          
#include "cache.h"
using namespace std;
Cache::Cache(unsigned long c,unsigned long d)
{
    e= c+d;
    printf("Value Of e:%lu",e);
}

void Cache::Calculate(unsigned long long A)
{
    printf("Value of e:%lu",e);
}

cache.h:
class Cache
{
      public: 
      unsigned long e;
      Cache(unsigned long c,unsigned long d)
      void Calculate(unsigned long long A);
}

在类声明中和之后缺少分号。在修复代码运行后,main应该是int。您是否实际运行了您认为运行的代码?

尝试显示main()函数的实际代码,即提供一个小型但完整(可编译、可运行)的工作代码示例,以演示您的问题。正如您所描述的,L1Cache似乎是一个函数声明,而不是一个对象,因此调用Calculate()的语句甚至不会编译。同样,返回void的构造函数也是无效的。请尝试使用调试器一次执行一条语句。如果您不知道如何使用调试器,现在是学习的时候了。当我尝试用“this”引用对象的变量时,我获得了成功。由于我的对象中会有这么多变量,我仍然不确定如何才能避免对每个变量使用“this”?在你发布的代码中似乎不是这样,但在真实代码中,你是否在某个时候跟踪了
e
?是否有名为
e
的函数参数或局部变量隐藏了同名的成员变量?
Value of e: =12;
Value of e: = garbage