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

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

Войти
Регистрация
Восстановить пароль
 
no0ker
101 / 88 / 4
Регистрация: 17.12.2010
Сообщений: 416
#1

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

21.01.2011, 19:40. Просмотров 1063. Ответов 4
Метки нет (Все метки)

почему не компилируется

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;
 
};
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
21.01.2011, 19:40
Здравствуйте! Я подобрал для вас темы с ответами на вопрос объявление и определение функции класса (C++):

Объявление и определение шаблонного класса - C++
Добрый вечер, мастера :) Почему данный код вызывает проблемы у компилятора? // class.h template &lt;typename T&gt; class Name { ...

Объявление и определение функции - C++
В учебнике такой код: void somefunction(int); int main() { //неважно }

Объявление класса и элемент-функции - C++
Здравствуйте! Имеется следующий исходный код: // определить класс GradeBook с элемент-функцией displayMessage; // создать обхект...

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

Объявление класса, создание объекта и вызов функции-члена - C++
Всем добрый день! Вот так я объявляю класс. typedef map&lt;string, double&gt; datablock; typedef map&lt;string, string&gt; groupvars; ...

Объявление функции возможно только для объявленного класса? - C++
Был очевидцем обьявления функции объявленного класса типа // lol.h #ifndef LOL_H #define LOL_H class simpleClass; //...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
alex_x_x
бжни
2447 / 1652 / 84
Регистрация: 14.05.2009
Сообщений: 7,162
21.01.2011, 19:42 #2
не делайте так, зачем в main то класть?
killboss
60 / 60 / 2
Регистрация: 18.12.2010
Сообщений: 127
21.01.2011, 19:47 #3
Не совсем хорошая идея создавать класс в main(). Избегайте этого.
no0ker
101 / 88 / 4
Регистрация: 17.12.2010
Сообщений: 416
21.01.2011, 19:54  [ТС] #4
выходит что нельзя в функции (например, в "int main()" ) - описать другую функцию.
а вот описать класс - можно. но не стоит. так?
Mr.X
Эксперт С++
3049 / 1694 / 265
Регистрация: 03.05.2010
Сообщений: 3,867
21.01.2011, 20:01 #5
На локальные классы (т.е. объявленные внутри функций) накладывается ряд ограничений, в том числе их функции-члены должны быть встроены в определение класса.
Ну и точки с запятой в строках 15, 19, 13 и 20 совершенно лишние.

Добавлено через 2 минуты
Цитата Сообщение от no0ker Посмотреть сообщение
выходит что нельзя в функции (например, в "int main()" ) - описать другую функцию.
а вот описать класс - можно. но не стоит. так?
Ну почему ж не стоит-то? Функторы как раз именно так и приходится описывать.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
21.01.2011, 20:01
Привет! Вот еще темы с ответами:

Определение функции за пределами шаблона класса - C++
не могу определить функцию за пределами класса, не компилится подсобите советом template&lt; typename TData &gt; class Owner { ...

Определение чистой виртуальной функции класса-шаблона - C++
Есть класс Comparable&lt;T&gt;: template&lt;typename T&gt; class Comparable : virtual public Object { public: virtual int compareTo(const T...

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

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


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
21.01.2011, 20:01
Ответ Создать тему
Опции темы

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