Форум программистов, компьютерный форум, киберфорум
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
defi
0 / 0 / 0
Регистрация: 29.01.2012
Сообщений: 34
#1

Объявление класса после инициализации - C++

07.07.2012, 15:02. Просмотров 465. Ответов 2
Метки нет (Все метки)

Подскажите возможно ли объявление класса в такой последовательности, чтобы вместо объявления написать class car;, просто видел в некоторых исходниках такое объявление, но не уверен что оно для этого применяется. Сам код не компилится.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
#include <iostream>
 
using namespace std;
 
class car;
 
int main()
{
    car ob("audi", 200);
    ob.show_car();
    system("pause");
    return 0;
}
 
class car {
    char* m_model;
    int m_speed;
public:
    car(char* model, int speed) {
        m_model = model;
        m_speed = speed;
    }
 
    void show_car() { cout << m_model << " " << m_speed << "\n"; }
};
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
07.07.2012, 15:02
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Объявление класса после инициализации (C++):

Объявление объекта класса fstream в качестве статической компоненты другого класса - C++
Доброго времени суток. Есть задание, в котором говорится &quot;...Перепишите программы из упражнений 4 и 6 таким образом, чтобы использовать...

Создать объявление класса и разработать программу-драйвер, которая продемонстрирует работу класса. - C++
Класс Triangle (треугольник). Класс хранит Декартовы координаты трех углов треугольника. Конструктор принимает три группы координат. Должны...

Объявление объекта одного класса в описании другого класса - C++
Здравствуйте. Почему при объявлении Student s в классе Teacher не возникает ошибки? Ведь такой объект уже существует. И почему при...

Объявление дружественного класса внутри класса - C++
class A{ friend class B{ B(A &amp;a); } } Подскажите пожалуйста, такое возможно или нет, я хотел чтобы...

Порядок инициализации членов класса - C++
Здравствуйте форумчане. Столкнулся с проблемой. Не могу найти доходчивой статьи на данный вопрос про инициалиазцию членов в классе. ...

Синтаксическая ошибка при инициализации класса - C++
Ругается на инициализацию списком struct Cord { int x=0, y=0, z=0; }; class Point { public:

2
ForEveR
В астрале
Эксперт С++
7983 / 4742 / 321
Регистрация: 24.06.2010
Сообщений: 10,547
Завершенные тесты: 3
07.07.2012, 15:53 #2
defi, На С++ вообщем-то никак, я одном исходнике так не сделаешь, даже использования указателей не поможет (ибо прежде чем использовать указатель, его все таки надо создать).
1
yekka
386 / 150 / 8
Регистрация: 12.05.2011
Сообщений: 450
07.07.2012, 16:03 #3
C++
1
class car;
это forward declaration,
используется для того, чтобы сообщить компилятору, что car -- это имя какого-то класса. После этого это имя можно использовать, например, для объявления функций, принимающих car в качестве аргумента.
C++
1
2
3
class mechanic {
    void repair(car &);
};
Но работать с объектами этого класса можно будет только после того, как класс будет объявлен целиком.
Forward declaration используется, когда есть два класса, зависящих друг от друга и для полного объявления каждого из них компилятору нужно знать о существовании другого.
1
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
07.07.2012, 16:03
Привет! Вот еще темы с ответами:

Ошибка инициализации объекта, конструктором класса - C++
Добрый день. Написал программу. Создание класса (упражнение из книги Дейтеля) &quot;Создайте класс с именем Account, которым мог бы...

Ошибка при инициализации элемента класса - C++
Добрый день, Нужна помощь более опытных форумчан, в поиске ошибки. Есть фрагмент кода: #include &quot;stdafx.h&quot; #include &lt;iostream&gt; ...

Объявление шаблонного класса - C++
Как объявить шаблонный класс?

Объявление объектов класса - C++
Как инициализировать объекты класса вне функции main, но и не в глобальной области? Объявленные объекты занимают много пространства в...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.