我正在这个网站上上名为Udemy的C++类(class)。我刚完成关于类(class)的视频讲座。在老师的鼓励下,我决定尝试一下使用类和头文件的想法。我首先创建2个.cpp文件和1个头文件。我在第二个.cpp文件中创建了一个函数,然后在头文件中为其创建了一个类,并尝试在第一个.cpp文件中对其进行调用,但是在第一个.cpp文件中出现了错误:无效地使用了'Learn2: :Learn2'。这是第一个.cpp文件:
#include "Learn1.h"
#include "Learn2.cpp"
Learn2 learn2;
int main() {
string input;
cout << "Would you like to see the menu of processes? (yes/no)" << endl;
cin >> input;
if (input == "yes"){
showMenu();
}
else{
cout << "all done here" << endl;
}
return 0;
}
void showMenu(){
cout << "Processes: " << flush;
cout << " Quit(4) Edit(5)" << endl;
int input;
cin >> input;
switch(input) {
case 4:
cout << "You selected: quit(4)" << endl;
break;
case 5:
cout << "You selected: edit(5)" << endl;
break;
default:
cout << "not recognized" << endl;
learn2.Learn2();
}
}
这是第二个.cpp文件:
#include "Learn1.h"
Learn2::Learn2(){
cout << "hi" << endl;
}
这是我的头文件(.h文件):
* Learn1.h
*
* Created on: Nov 19, 2016
* Author: jacob
*/
#ifndef LEARN1_H_
#define LEARN1_H_
#include <iostream>
#include <limits.h>
#include <iomanip>
using namespace std;
class Learn1 {
public:
Learn1();
virtual ~Learn1();
};
void showMenu();
class Learn2 {
public:
Learn2();
};
#endif /* LEARN1_H_ */
是的,我知道,代码有点随机,请记住我只是在想这个主意。
最佳答案
在名为Learn2
的类中,所有名为Learn2
的函数都是构造函数。它们只能用于构造对象,而不能被用作类对象的成员函数。
因此,
learn2.Learn2();
是错的。
您可以使用
learn2 = Learn2();
构造一个全新的对象,然后将其分配给
learn2
。如果该类还有其他成员函数,则可以在
learn2.
上调用它们class Learn2 {
public:
Learn2();
display() { std::cout << "In Learn2::display\n"; }
};
Learn learn2;
learn2.display();
关于c++ - (C++)得到错误:class::function的无效使用,我丝毫不知道为什么,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/40713233/