#include<iostream>
using namespace std;
class Prac{
string ch;
public:
void getstring(string g)
{
ch=g;
return;
}
};
int main()
{
Prac obj1;
Prac obj2;
string str1;
cout<<"Enter string for object 1"<<endl;
getline(cin,str1);
obj.getstring(str1);
cout<<sizeof(obj1)<<endl;
cout<<sizeof(obj2)<<endl;
return 0;
}
オブジェクトのサイズは、その中に存在するデータメンバーの合計サイズです。 obj1の場合、変数stringに値を挿入していますが、obj2については空白のままにしています。なぜ出力(オブジェクトのサイズ)に違いはありませんか?C++でのオブジェクトのサイズ
"オブジェクトのサイズは、そこに存在するデータメンバーの合計サイズです。 - いいえ、それは真実ではありません。 「出力に何の違いもないのはなぜですか?」というのは、オブジェクトのサイズがそのオブジェクトに格納されているデータに依存しないからです。 – AnT
'std :: string'は、' sizeof'によってカウントされない動的に割り当てられたメモリを含みます – SurvivalMachine