gpt4 book ai didi

c++ - 使用 () 时有什么区别;与;在 C++ 中创建对象时?

转载 作者:搜寻专家 更新时间:2023-10-31 00:28:55 25 4
gpt4 key购买 nike

在c++中,写类似的东西有什么区别

myclass myobject();
//and
myclass myobject;

我也是堆栈溢出的新手,所以如果我做错了什么,请告诉我。

最佳答案

当你写的时候:

myclass myobject(); 

您可能认为您正在创建一个 myclass 类型的新对象, 但你实际上声明了一个名为 myobject函数 ,不带参数,返回类型为 myclass .

如果您想确定地看到这一点,请检查此代码:

#include <stdio.h>
#include <iostream>

using namespace std;

class myclass
{ public: int ReturnFive() { return 5; } };

int main(void) {
myclass myObjectA;
myclass myObjectB(); // Does NOT declare an object
cout << myObjectA.ReturnFive() << endl; // Uses ObjectA
cout << myObjectB.ReturnFive() << endl; // Causes a compiler error!
return 0;
}


prog.cpp: In function ‘int main()’:
prog.cpp:18:23: error: request for member ‘ReturnFive’ in ‘myObjectB’, which is of non-class type ‘myclass()’
cout << myObjectB.ReturnFive() << endl;
^~~~~~~~~~

关于c++ - 使用 () 时有什么区别;与;在 C++ 中创建对象时?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43336151/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com