Задать вопрос
@DeScWD

Одинаковый размер класса при разных размерах членов класса?

Есть код:
#include <iostream>

using namespace std;

class testing
{
private:
	int* test;
public:
	testing(int x)
	{
		test = new int[x];
	}
	int getSize()
	{
		return sizeof(this);
	}
};

int main()
{
	testing first(12);
	testing second(15);
	cout << first.getSize() << ' ' << second.getSize();
	system("PAUSE >> VOID");
	return 1;
}


Вывод:
4 4

Почему так происходит, ведь размеры массива test разные? Можно ли перегрузить функцию sizeof()?
  • Вопрос задан
  • 2235 просмотров
Подписаться 2 Оценить Комментировать
Решения вопроса 2
Taraflex
@Taraflex
Ищу работу. Контакты в профиле.
sizeof() вернет размер указателя на объект класса.
Ответ написан
jcmvbkbc
@jcmvbkbc
"I'm here to consult you" © Dogbert
Почему так происходит, ведь размеры массива test разные?

Массив не является частью объекта класса testing. И к тому же this -- это указатель на объект, sizeof(this) -- это размер указателя, а не объекта.
Можно ли перегрузить функцию sizeof()?

Это не функция а оператор языка. Перегрузить его нельзя.
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
AxisPod
@AxisPod
Код чума. Надо всё же наверное читать литературу по работе с памятью для начала.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы