如何在C ++中正确声明一个函数?

时间:2018-08-18 17:30:53

标签: c++

我想在我的main.cpp中声明一个函数,以便我的main函数可以成为文件中的第一个函数。看起来像这样:

main.cpp

 #include <iostream>
 #include <string>
 using namespace std;

string my_function();
int main () {
    my_function();
    return 0;
}
string my_function(string message = "") {
    string response;
    cout << message;
    getline(cin,response);
    return response;
}

但是,在编译时出现错误:

/usr/bin/ld: /tmp/cco8jyj1.o: in function `main':
main.cpp:(.text+0x1f): undefined reference to `my_function[abi:cxx11]()'
collect2: error: ld returned 1 exit status
[Finished in 1.4s with exit code 1]

怎么了?

3 个答案:

答案 0 :(得分:5)

string my_function();已声明但未定义。

应该是:

string my_function(string message = "");

...

string my_function(string message) { ... }

答案 1 :(得分:1)

更好:

  • 在声明中使用默认参数,但在定义中不使用。

  • 通过const引用传递字符串,因此不会引起不必要的麻烦 字符串的副本。

已更新:

string my_function(const string& message = "");

int main() {
    my_function();
    return 0;
}

string my_function(const string& message) {
    string response;
    cout << message;
    getline(cin, response);
    return response;
}

答案 2 :(得分:0)

您可以使用以下解决方案:

string my_function(string message = "");

...

string my_function(string message)
 {
    your codes here
 }