(C+;+;)得到错误:class::function的使用无效,我一点也不知道为什么 我在这个网站上做了一个关于UDIMY的C++课程。我刚刚完成了一个关于课堂的视频讲座。在老师的鼓励下,我决定尝试使用类和头文件。我首先创建了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(); } } #include "Learn1.h" Learn2::Learn2(){ cout << "hi" << endl; } #包括“Learn1.h” #包括“Learn2.cpp” Learn2 Learn2; int main(){ 字符串输入; 不能输入; 如果(输入=“是”){ showMenu(); } 否则{ cout

(C+;+;)得到错误:class::function的使用无效,我一点也不知道为什么 我在这个网站上做了一个关于UDIMY的C++课程。我刚刚完成了一个关于课堂的视频讲座。在老师的鼓励下,我决定尝试使用类和头文件。我首先创建了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(); } } #include "Learn1.h" Learn2::Learn2(){ cout << "hi" << endl; } #包括“Learn1.h” #包括“Learn2.cpp” Learn2 Learn2; int main(){ 字符串输入; 不能输入; 如果(输入=“是”){ showMenu(); } 否则{ cout,c++,C++,您不能直接调用类构造函数。这意味着此语句是错误的: learn2.Learn2(); 在名为Learn2的类中,名为Learn2的所有函数都是构造函数。它们只能用于构造对象,不能作为类对象上的成员函数调用 因此, learn2.Learn2(); 这是错误的 你可以用 learn2 = Learn2(); 构建一个全新的对象,然后将其分配给learn2 如果该类有其他成员函数,则可以在learn2上调用它们。 class Learn2 { public: Learn2();

您不能直接调用类构造函数。这意味着此语句是错误的:

learn2.Learn2();

在名为
Learn2
的类中,名为
Learn2
的所有函数都是构造函数。它们只能用于构造对象,不能作为类对象上的成员函数调用

因此,

learn2.Learn2();
这是错误的

你可以用

learn2 = Learn2();
构建一个全新的对象,然后将其分配给
learn2

如果该类有其他成员函数,则可以在
learn2上调用它们。

class Learn2 {
  public:
    Learn2();
    display() { std::cout << "In Learn2::display\n"; }
};

Learn learn2;
learn2.display();
类学习2{
公众:
Learn2();

display(){std::cout第
learn2.learn2();
行中的代码试图实现什么?这不是一个有效的函数调用。@RSahu我正在尝试调用函数learn2(),因此如果我试图调用函数learn2()从类Learn2开始,我应该怎么做呢?你想做什么?我想调用函数Learn2(),以便它打印“hi”。我认为我这样做是正确的,但显然不是xD。正确的方法是向类中添加一个特殊的方法。类似于
Learn2::printHi()
我喜欢你的答案,但它给了我另一个错误:在“.”之前应该是非限定idtoken@JakeRamos,
learn2.display();
不能在全局范围内使用。它可以在函数中使用。因此无法调用learn2()从另一个班级?@ JakeRamos,这个问题是从哪里来的?我认为你应该坐下来用一本好的教科书来发展对语言的坚定理解。视频教程似乎不是学习语言的好工具。谢谢!它起作用了!很抱歉我一开始就不清楚,我对C++完全陌生。他们告诉我它会是。难..哈哈。
class Learn2 {
  public:
    Learn2();
    display() { std::cout << "In Learn2::display\n"; }
};

Learn learn2;
learn2.display();