Форум программистов, компьютерный форум CyberForum.ru

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

Восстановить пароль Регистрация
 
defi
0 / 0 / 0
Регистрация: 29.01.2012
Сообщений: 34
07.07.2012, 15:02     Объявление класса после инициализации #1
Подскажите возможно ли объявление класса в такой последовательности, чтобы вместо объявления написать 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"; }
};
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
07.07.2012, 15:02     Объявление класса после инициализации
Посмотрите здесь:

C++ Создать объявление класса и разработать программу-драйвер, которая продемонстрирует работу класса.
объявление объекта одного класса в описании другого класса C++
объявление дружественного класса внутри класса C++
C++ Действие для кнопки при инициализации класса
C++ Ошибка инициализации объекта, конструктором класса
C++ Ошибка при инициализации элемента класса
Принцип инициализации статических членов шаблона класса C++
Порядок инициализации членов класса C++

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
ForEveR
Модератор
Эксперт C++
 Аватар для ForEveR
7927 / 4709 / 318
Регистрация: 24.06.2010
Сообщений: 10,524
Завершенные тесты: 3
07.07.2012, 15:53     Объявление класса после инициализации #2
defi, На С++ вообщем-то никак, я одном исходнике так не сделаешь, даже использования указателей не поможет (ибо прежде чем использовать указатель, его все таки надо создать).
yekka
384 / 148 / 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 используется, когда есть два класса, зависящих друг от друга и для полного объявления каждого из них компилятору нужно знать о существовании другого.
Yandex
Объявления
07.07.2012, 16:03     Объявление класса после инициализации
Ответ Создать тему
Опции темы

Текущее время: 20:12. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru