Что такое Класс и Объект в C++?

Я буду второй valgrind как внешний инструмент для утечек памяти.
, Но, для большинства проблем, которые я должен был решить, я всегда использовал внутренне созданные инструменты. Иногда внешние инструменты имеют слишком много служебное или являются слишком сложными для установки.

, Почему использование уже записанный код, когда можно записать собственное:)

я шучу, но иногда Вам нужно что-то простое, и это быстрее для записи его самим. Обычно я просто заменяю вызовы к malloc () и свободный () с функциями, которые отслеживают то, кто выделяет что. Большинство моих проблем, кажется, кто-то, забыл освобождать, и это помогает решить ту проблему.

Это действительно зависит от того, где утечка, и если бы Вы знали, что, тогда Вам не были бы нужны никакие инструменты. Но если у Вас есть некоторое понимание, где Вы думаете, что оно пропускает, затем вставило Ваш собственный инструментарий и видит, помогает ли оно Вам.

15
задан 4 revs, 3 users 67% 30 May 2017 в 01:51
поделиться

13 ответов

Нет, объект является экземпляром класса.

3
ответ дан 30 November 2019 в 23:50
поделиться

Short Answer: In Languages C++, Java: No. In Languages like Python: Yes

-1
ответ дан 30 November 2019 в 23:50
поделиться

Класс похож на чертеж, объект похож на дом, построенный по этому чертежу.

У вас может быть много домов с одинаковой планировкой / планом этажа (читайте класс), но каждый из них это собственный экземпляр (объект чтения). У каждого есть собственный владелец, мебель и т. Д.

Обратите внимание, что есть также объекты, план которых не является классом (например, целые числа).

49
ответ дан 30 November 2019 в 23:50
поделиться

В C ++ объекты по сути являются переменными, а классы - типами их значений.

-1
ответ дан 30 November 2019 в 23:50
поделиться

Это аналогично тому, как спросить, является ли кошка «Варежками моего котенка».

-1
ответ дан 30 November 2019 в 23:50
поделиться

И классы, и экземпляры являются объектами, но объектно-ориентированное программирование не заставляет язык иметь классы и экземпляры.

-2
ответ дан 30 November 2019 в 23:50
поделиться

C ++ поддерживает множество парадигм, но не стиль объектно-ориентированного программирования «все является объектом». Классы существуют в исходном коде, но не существуют во время выполнения. Даже информация о типе времени выполнения не сохраняет классы как объекты, а только предоставляет возможность получать непрозрачные идентификаторы, соответствующие типу.

0
ответ дан 30 November 2019 в 23:50
поделиться

Объект является экземпляром класса.

17
ответ дан 30 November 2019 в 23:50
поделиться

Объект - это некоторые данные, которые имеют адрес в оперативной памяти.

Существуют разные типы объектов (например, int, float и т. Д.). Вы можете создавать определяемые пользователем типы, называемые «классами».

Например, я могу определить Dog как класс ...

class Dog {};

... а затем создать несколько объектов, каждый из которых является одним экземпляром этого класса ...

Dog fido;
Dog spot;
6
ответ дан 30 November 2019 в 23:50
поделиться

Я постараюсь дать больше технических объяснений, чем абстрактных. Я думаю, что такие определения, как «класс - это план, а объект - это что-то созданное из этого плана» их невозможно понять новичкам просто потому, что такие определения абстрактны и не зависят от контекста.

Классы и объекты имеют чисто абстрактное значение в объектно-ориентированном мире, но для простоты я уменьшу определение до более практичного.

1297] Рассмотрим следующий оператор:

int a;

«int» - это тип , а «a» - это переменная, имеющая тип «int».

C ++ предоставляет различные способы, позволяющие программисту определять новые типы; например:

typedef int* int_ptr;
int_ptr a;

В этом примере определен новый тип int_ptr. - это переменная типа int.

C ++ предоставляет различные способы, позволяющие программисту определять новые типы; например:

typedef int* int_ptr;
int_ptr a;

В этом примере определен новый тип int_ptr. - это переменная типа int.

C ++ предоставляет различные способы, позволяющие программисту определять новые типы; например:

typedef int* int_ptr;
int_ptr a;

В этом примере определен новый тип int_ptr. "int_ptr" - это тип, "a" - это переменная, имеющая тип "int_ptr". Другой пример:

struct Point
{   
    int x;
    int y;
};
Point a;

Здесь определен новый тип , «Point», а «a» - это переменная, имеющая тип «Point».

Итак, что такое класс в C ++? Класс - это еще один способ определения нового типа, как и другие способы, упомянутые выше.

Что такое объект? Объект - это переменная, тип которой был определен с помощью ключевого слова class.

Например:

class SmartPoint
{
public:
   Point(x,y);
   Move(x,y);
protected:
   int x,y ;
};

SmartPoint a;

В этом примере определен новый тип , «SmartPoint» и «a» - это переменная, имеющая тип "SmartPoint".

Тогда вы можете спросить, чем отличается тип, определенный с помощью ключевого слова "class", ключевого слова "struct" или "typedef" - но это вопрос другого обсуждения .

6
ответ дан 30 November 2019 в 23:50
поделиться

Класс : класс определяет поведение и свойства конкретного типа.

Объект : объект является экземпляром класса.

Например, если вы иметь Собаку по имени Бинго .

  • Собака будет классом , определяющим ее поведение и свойства

  • Бинго будет объект , который является экземпляром класса Dog

Строго говоря, класс не является объектом в C ++. Но в таких языках, как C # и Java, которые поддерживают отражение, классы могут использоваться как объекты, но это более продвинутая тема и, вероятно, не то, что задает исходный вопрос.

0
ответ дан 30 November 2019 в 23:50
поделиться

Нет, объект является экземпляром класса ...

Если ...

Если вы реализуете инструмент разработки программного обеспечения, который позволяет вам представлять классы, интерфейсы, свойства, наследование, ассоциации, агрегации и т. д., то во время выполнения да, каждый класс, который вы помещаете в конструктор, будет экземпляром объекта класса Class. Ладно, я не мог удержаться от того, чтобы найти пример такой извращенный и мета.

А теперь серьезно, класс - это не объект.

2
ответ дан 30 November 2019 в 23:50
поделиться

Класс не является объектом.

В более простом языке C класс похож на тип struct , но более сложен. Используя пример C struct в качестве аналогии:

struct class_ {
    int attribute00;
    float attribute02;
    ...
}

struct class_ object_ = {0, 0.0, ...};

struct class_ действует как класс , а object_ действует как объект . struct class_ не имеет физического хранилища в памяти, object_ имеет физическое хранилище в памяти.

В человеческом языке слово «дом» (как класс ) может быть определено в словаре как место для проживания, с дверями, окнами и комнатами, в которых вы можете говорить только своим ртом. рассказывать другим людям, что такое дом. Физический дом (как объект ) - это прочный дом на земле, в который вы можете въехать и остаться со своей семьей.

Слово «дом» не подразумевает физического занятия земли или пространства. Физический дом занимает землю и пространство.

0
ответ дан 30 November 2019 в 23:50
поделиться
Другие вопросы по тегам:

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