using namespace std;
class A {};
class B {};
class C : public A {
virtual void ()=0;
};
class D : public B, public C {};
int main() {
cout<<"sizeof(A):"<<sizeof(A)<<endl;
cout<<"sizeof(B):"<<sizeof(B)<<endl;
cout<<"sizeof(C):"<<sizeof(C)<<endl;
cout<<"sizeof(D):"<<sizeof(D)<<endl;
return 0;
}
* 结果为: 1 1 4 4
* 最后一个可能与编译器有关,可能8
*/
using namespace std;
class A {
private:
int data;
};
class B {
private:
int data;
static int data1;
};
int B::data1=0;
main() {
cout<<"sizeof(A) = "<< sizeof(A) <<endl;
cout<<"sizeof(B) = "<< sizeof(B) <<endl;
}
* 结果为: 4 4
*/
using namespace std;
class A {
public :
A(int a) {
a=x;
}
void f(int x) {
cout<<x<<endl;
}
~A() {}
private:
int x;
int g;
};
class B {
public:
private:
int data;
int data2;
static int xs;
};
int B::xs=0;
int main() {
A s(10);
s.f(10);
cout << "sizeof(a): "<< sizeof(A) << endl;
cout << "sizeof(b): "<< sizeof(B) << endl;
}
* 结果为: 8 8
*/
using namespace std;
class X {};
class Y : public virtual X {};
class Z : public virtual X {};
class A : public Y, public Z {};
int main() {
cout << "sizeof(X): " << sizeof(X) << endl;
cout << "sizeof(Y): " << sizeof(Y) << endl;
cout << "sizeof(Z): " << sizeof(Z) << endl;
cout << "sizeof(A): " << sizeof(A) << endl;
return 0;
}
* 结果为: 1 4 4 8
*/
using namespace std;
class X {
int a;
};
class Y : public virtual X {};
class Z : public virtual X {};
class A : public Y, public Z {};
int main() {
cout << "sizeof(X): " << sizeof(X) << endl;
cout << "sizeof(Y): " << sizeof(Y) << endl;
cout << "sizeof(Z): " << sizeof(Z) << endl;
cout << "sizeof(A): " << sizeof(A) << endl;
return 0;
}
* 结果为: 4 8 8 12
*/
#include<iostream>
using namespace std;
class X {
int a;
virtual void fun()=0;
};
class Y : public virtual X {};
class Z : public virtual X {};
class A : public Y, public Z {};
int main() {
cout << "sizeof(X): " << sizeof(X) << endl;
cout << "sizeof(Y): " << sizeof(Y) << endl;
cout << "sizeof(Z): " << sizeof(Z) << endl;
cout << "sizeof(A): " << sizeof(A) << endl;
return 0;
}
* 结果为: 8 12 12 16
*/
近期评论