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

объявление и определение функции класса - C++

Восстановить пароль Регистрация
 
no0ker
100 / 87 / 4
Регистрация: 17.12.2010
Сообщений: 416
21.01.2011, 19:40     объявление и определение функции класса #1
почему не компилируется

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#include <iostream>
 
int main(){
 
class A
{
    public:
        A();   // объявление конструктора
};
 
// определение конструктора
A::A()
{
    std::cout<<"A!";
}; 
 
A a;
 
};
хотя вот так - ошибок не выдает. =(

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#include <iostream>
 
class A
{
    public:
        A();   // объявление конструктора
};
 
// определение конструктора
A::A()
{
    std::cout<<"A!";
}; 
 
 
int main(){
 
A a;
 
};
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
alex_x_x
бжни
 Аватар для alex_x_x
2441 / 1646 / 84
Регистрация: 14.05.2009
Сообщений: 7,163
21.01.2011, 19:42     объявление и определение функции класса #2
не делайте так, зачем в main то класть?
killboss
 Аватар для killboss
57 / 57 / 2
Регистрация: 18.12.2010
Сообщений: 127
21.01.2011, 19:47     объявление и определение функции класса #3
Не совсем хорошая идея создавать класс в main(). Избегайте этого.
no0ker
100 / 87 / 4
Регистрация: 17.12.2010
Сообщений: 416
21.01.2011, 19:54  [ТС]     объявление и определение функции класса #4
выходит что нельзя в функции (например, в "int main()" ) - описать другую функцию.
а вот описать класс - можно. но не стоит. так?
Mr.X
Эксперт С++
 Аватар для Mr.X
2798 / 1574 / 246
Регистрация: 03.05.2010
Сообщений: 3,651
21.01.2011, 20:01     объявление и определение функции класса #5
На локальные классы (т.е. объявленные внутри функций) накладывается ряд ограничений, в том числе их функции-члены должны быть встроены в определение класса.
Ну и точки с запятой в строках 15, 19, 13 и 20 совершенно лишние.

Добавлено через 2 минуты
Цитата Сообщение от no0ker Посмотреть сообщение
выходит что нельзя в функции (например, в "int main()" ) - описать другую функцию.
а вот описать класс - можно. но не стоит. так?
Ну почему ж не стоит-то? Функторы как раз именно так и приходится описывать.
Yandex
Объявления
21.01.2011, 20:01     объявление и определение функции класса
Ответ Создать тему
Опции темы

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