类标题和在我的类.cpp文件中使用构造函数:"error:class'Test'没有任何名为'counter'的字段"

Tot*_*gon 0 c++ constructor field header class

我遇到了一个问题,我的类中的一个字段不能被它的.cpp文件中的构造函数访问,原因我不知道.cpp不会继承它,我无法构造它用于我的其余部分program
这是包含我希望在Test.h中构造的字段的类

class Test
{
public:
    Test();
    virtual ~Test();
    void count();
    int counter();
};
Run Code Online (Sandbox Code Playgroud)

这是Test.cpp中字段'counter'的构造函数

Test::Test() : counter(0){}
Run Code Online (Sandbox Code Playgroud)

根据我对C++的了解,这应该是正确的,因为Test.cpp包含#include"Test.h",当使用main.cpp而没有标题,任何想法时,完全相同的代码在编写和构造类时有效吗?

And*_*rew 5

Test::Test() : counter(0){} - 你应该在这里初始化你的成员变量,而不是调用成员函数.

我想你的意思是:

class Test
{
public:
    Test();
    virtual ~Test();
    void count();
    int counter; // no ()
};
Run Code Online (Sandbox Code Playgroud)

正如尤里建议的那样


yur*_*hek 5

int counter();是一个函数声明.删除().

  • @TotalJargon,你为什么要移动另一部分?很好.事实上,它应该是首选. (2认同)