-1

我对 C++ 很陌生,所以这可能很简单。如何在同一个类中调用方法。我的朋友告诉我我需要一个构造函数。代码:

#include <iostream>
#include <string>

using namespace std;

int main()
{
    disMessage("");
    return 0;
}

编辑:我如何在没有新类/构造函数的情况下调用该方法

void disMessage(string a)
{
    cout << "\n" << a << endl;
}
4

4 回答 4

4

我猜你的意思是,我如何调用稍后在同一个文件(不是类)中定义的函数(不是方法)。您没有在这里定义任何类,因此无需担心构造函数。(也许您已经习惯了强制您将所有代码封装在类中的语言。欢迎使用 C++:这里没有任何废话。)

您需要在调用它之前声明一个函数,所以要么这样做:

void disMessage(string);   // declaration

int main() {
    disMessage("safas");   // use (after declaration)
    return 0;
}

void disMessage(string a){ // definition
    cout << "\n" << a << endl;
}

或者将函数定义移到使用点之前:定义也是声明。

void disMessage(string a){ // definition and declaration
    cout << "\n" << a << endl;
}

int main() {
    disMessage("safas");   // use (after declaration)
    return 0;
}
于 2013-09-17T18:12:12.047 回答
1

也许这个例子会帮助你理解如何从类的内部和外部调用方法。

class foo
{
public:
    void disMessage(string a)
    {
        cout << "\n" << a << endl;
    }

    void bar()
    {
        disMessage("foo::bar");
    }
};

int main() {
    foo f;

    f.disMessage("main");
    f.bar();

    return 0;
}
于 2013-09-17T18:11:50.863 回答
0

简短的回答?将disMessage(string a)方法移到方法上方,main()如下所示:

void disMessage(string a){

    cout << "\n" << a << endl;

}

int main() {

    disMessage("safas");

    return 0;

}

这是由于您正在编写的代码类型(下面将详细介绍),这意味着编译器需要先找到您的函数,然后才能调用它们。

但是,您在此处编写的代码不是面向对象的代码(即基于类)。它实际上只是简单的 C 代码。您应该阅读一些有关面向对象编程的内容以正确理解这一点,因为这是一个巨大的主题。

于 2013-09-17T18:14:02.540 回答
0

对于构造函数,您需要一个类和一个实例化对象:

class disMessage {
  public:
  disMessage(string a) {
    cout << "\n" << a << endl;
  }
};

int main() {
  disMessage obj("safas");
  return 0;
}
于 2013-09-17T18:11:41.457 回答