C++方法的构造函数

C++ Constructor For A Method

本文关键字:构造函数 方法 C++      更新时间:2023-10-16

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

#include <iostream>
#include <string>
using namespace std;
int main()
{
    disMessage("");
    return 0;
}

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

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

我猜你的意思是,我如何调用稍后在同一文件(不是类)中定义的函数(不是方法)。您在这里没有定义任何类,因此无需担心构造函数。(也许你已经习惯了强迫你把所有代码包装在类中的语言。欢迎来到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;
}

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

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;
}

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

void disMessage(string a){
    cout << "n" << a << endl;
}
int main() {
    disMessage("safas");
    return 0;
}

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

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

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

class disMessage {
  public:
  disMessage(string a) {
    cout << "n" << a << endl;
  }
};
int main() {
  disMessage obj("safas");
  return 0;
}