【发布时间】:2019-05-28 05:59:09
【问题描述】:
看看我的代码:
#include <iostream> using namespace std; class MyClass{ public: char ch[50] = "abcd1234"; }; MyClass myFunction(){ MyClass myClass; return myClass; } int main() { cout<<myFunction().ch; return 0; }
我不明白我的返回值存储在哪里?它存储在堆栈中吗?在堆里?在我的程序完成之前它会一直保留在内存中吗?
如果它存储在堆栈中,我可以确定我的类值永远不会改变吗?
请解释这些返回的机制。如果返回结构与返回类不同?
【问题讨论】:
-
C++中struct和class之间唯一的区别是默认访问级别(struct为public,class为private)
-
@Borgleader 还有默认继承。结构为公共,类为私有。
-
@NeilButterworth ITYM 对父类的默认访问级别 ;)
-
@Borgleader 不,我不是那个意思。
标签: c++ function return stack nrvo