永发信息网

C++为什么下列代码中,JACK无法引用公有成员HUMAN?

答案:3  悬赏:30  手机版
解决时间 2021-04-06 03:20
  • 提问者网友:王者佥
  • 2021-04-05 04:08
C++为什么下列代码中,JACK无法引用公有成员HUMAN?
最佳答案
  • 五星知识达人网友:西岸风
  • 2021-04-05 04:30
这代码虽然逻辑不对,但是语法上没错啊。怎么个不能引用?追问范磊的视频中代码,我没有写全。我用JACK加点时,只出三个成员让我选,一个是SET, I, ~HUMAN, 但是没有出现HUMAN的选项。真是郁闷追答构造函数正常来说是不应该直接调用的

new(&Jack) Human(); // 如果你想确实调用构造函数,这是官方写法。不过placement new不是内置的,而且具体在哪个头文件里我也不知道。反正包含了常用的头以后肯定有。

另外你可以这么调 Jack.Human::Human(); 不过这种写法周边的支持比较少,特别在你用模板的时候。placement new能用的时候,这样写未必能用。追问请看我补充的截屏图。为什么他的视频中有HUMAN的选项,但是我没有?我只是菜鸟,还没学到模版或运用。我只是想跟着他在视频中一步步学。追答VC6的C++和现在C++的关系类似于尼安德特人和智人的关系... 不是一个物种。

拿VC6讲C++的人你直接判定是欺世盗名之徒基本上不会误伤。
全部回答
  • 1楼网友:逐風
  • 2021-04-05 05:10
看到你这种用法,我都震惊了追问这是范磊的视频教程案例好吧?帮人起码回复点有价值的,否则就不要在别的帖中灌水。珍惜自己和别人的时间。追答对象创建的时候会调用构造函数,声明周期结束的时候会调用析构函数,这是c++语言内建的模型,根本不需要自己手动去调用,之所以能调用析构函数,是因为一些特定地方可能会用到,比如delete函数,它里面会先调用对象析构函数,再释放掉占用的内存,而构造函数没有这样的需求追问知道。范磊在视频中解讲,我想练习,多熟悉。我不是用来自己编的程序,我是用来记忆和熟悉的。我在问,我为什么无法用JACK访问公有成员HUMAN, 你的回答不搭界。他在视频中的代码,我没有写全,你不要考虑代码的逻辑性,和本段代码我要干嘛。你要是真的C++是牛人,你帮我回答,为什么JACK无法调用HUMAN.追答我不是说了这是c++语言的内建模型么,就是c++的规则就是这样,c++语言的作者这么规定的,比如c++函数形参是值传递,为什么是值传递呢?我只能说这是c++语言作者规定的
  • 2楼网友:醉吻情书
  • 2021-04-05 04:45
哈哈,不可以用对象引用构造函数的,构造函数的执行是系统自动调用的。追问那上面的截图为什么出现构造函数的选项呢? 第二个选项就是构造函数。那个截图是范磊教学视频中的截图
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯