C++;类的实例化和调用方法 好的,我只是想给出C++的一个尝试(我现在做的是C),现在我的第一个问题是类实例化或调用另一个类中的一个方法。

C++;类的实例化和调用方法 好的,我只是想给出C++的一个尝试(我现在做的是C),现在我的第一个问题是类实例化或调用另一个类中的一个方法。,c++,methods,instantiation,C++,Methods,Instantiation,这是我的密码: 我的主要节目条目: #include <iostream> #include "myClass.h" using namespace std; int main() { myClass* mc = new myClass(); } 类标题: #pragma once class myClass { public: myClass(); ~myClass(); }; 现在您可以看到,我已经实例化了这个类,但是我

这是我的密码: 我的主要节目条目:

#include <iostream>
#include "myClass.h"
using namespace std;
    int main()
    {
        myClass* mc = new myClass();
    }
类标题:

#pragma once
class myClass
{
public:
    myClass();
    ~myClass();
};

现在您可以看到,我已经实例化了这个类,但是我无法访问DoSomething()方法。

这段代码只是声明了一个局部函数,并且有一个空的作用域:

myClass::myClass()
{
    void DoSomething(); // local function declaration

    {
      // empty scope    
    }
}
如果希望
doSomething()
成为
myclass
的成员,则必须在类定义中声明它:

class myClass
{
public:
    myClass();
    ~myClass();
    void doSomething();
};
然后实施它

void myclass::doSomething() { .... }

也注意到C++中不必使用<代码>新< /代码>。您可以像这样实例化一个对象:

int main()
{
    myClass mc;
}

还要注意的是,至少在实际代码中,这不是一个好主意。

这是构造函数中的函数声明(+{}中的一个ampty范围)

您需要在类主体(而不是构造函数)中声明函数,并定义此函数(可以立即与声明一起执行,也可以稍后再执行,如此处所示):

建造商的实施:

myClass::myClass() { .... }
实现您的功能,类似地:

void myClass::doSomething() { .... }

您试图在main中使用的方法必须是类定义的一部分。可以编写内联函数,也可以单独定义该函数。此外,您需要将该函数公开,以便从main访问它。

他甚至不需要名称空间,因为他没有使用任何名称空间。
class myClass
{
public:
    myClass();
    ~myClass();
    void doSomething();
};
myClass::myClass() { .... }
void myClass::doSomething() { .... }