Em nghĩ, hình như đây là câu trả lời mở, có nhiều option để trả lời, giống như anh TQN nói.
Điểm ghi được tuỳ theo mức độ trả lời của ứng viên.
Em có tìm hiểu thêm là cái đó hình như phải dựa trên platform nào 32bit, hay 64bit thì phải.
Stanley_00 wrote:
Sao bạn không tự thử nghiệm luôn đi nhỉ? Có thể dùng sizeof để kiểm tra kích thước của class đó.
Dùng tool VS 2010 bỏ qua complier header nội dung như sau :
Code:
#include <stdio.h>
#include <conio.h>
class Student
{
private :
int StudentID;
char* StudentName;
public :
Student()
{
this->StudentID=0;
this->StudentName="ndp1007";
}
};
int main()
{
Student *a = new Student();
printf("%d",sizeof(a));
getch();
return 0;
}
Trên winxp 32bit :
Màn hình để số 4 ( dù // đi 2 attribute StudentID và Name, thay int = float, char ... cũng là số 4) (1)
Size của file exe là 32 Kb ( k0 biết máy compiler của máy Editor khác ntn )
(1) : Cái này em cũng ko rõ, huynh nào giải thích dùm em với
Em hiểu là size của 1 lớp là = sum(Attributes of Class)
Khi khai báo Student *a = new Student(); thì con trỏ a trỏ tới địa chỉ được cấp phát với size = size của class Student ?
Mà giữa 2 cách khai báo Student *a vs Student *a = new Student() size chiếm trong bô nhớ có khác nhau không ? ( Theo như em test code trên thì như nhau)