C ++的方法构造函数

时间:2013-09-17 18:07:40

标签: c++ constructor

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

#include <iostream>
#include <string>

using namespace std;

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

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

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

4 个答案:

答案 0 :(得分: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;
}

答案 1 :(得分: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;
}

答案 2 :(得分:0)

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

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

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

答案 3 :(得分:0)

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

void disMessage(string a){

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

}

int main() {

    disMessage("safas");

    return 0;

}

这是由于您编写的代码类型(下面有更多相关内容),这意味着编译器需要先找到您的函数才能调用它们。

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