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

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

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

Никак не могу разобраться с конструктором. - C++

28.09.2010, 16:10. Просмотров 557. Ответов 5
Метки нет (Все метки)

Добрый день.
Недавно стал изучать C++.
Уже 2 день пытаюсь понять суть конструктора, но не могу.

Код который присутствует в книжках, не работает в компиляторах visual C++ 10 и DEV-C++ 4.9.9.2.

например вот на такой код компилятор говорит: функция член локального класса не имеет тела и подсвечивает строку где у меня конструктор. Хотя в книжках показываются такие примеры

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
class сотрудник {   
    public:     
        int возраст;
        сотрудник();  //конструктор   // компилятор здесь говорит про ошибку
        ~сотрудник(); // деструктор
                    };
 
    сотрудник::сотрудник(){
        возраст = 10;
    };
 
        сотрудник объект;
 
        сотрудник::~сотрудник(){};


Если я конструктору прямо в классе создам тело то все заработает и создав объект у переменной возраст будет значение 10.

сотрудник(){ возраст = 10; }; //конструктор


Но хочется понять, отчего не работает
констуркция
сотрудник::сотрудник(){}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
28.09.2010, 16:10     Никак не могу разобраться с конструктором.
Посмотрите здесь:

Никак не могу разобраться с ошибкой. - C++
Задание: Имеются числа х1,х2,...,хn.Расставить их в таблице размером (nхn) так,чтобы в каждой строке и в каждом столбце каждое число...

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

Необходимо разобраться с конструктором! - C++
class Complex { public: // Конструктор по умолчанию // (в данном случае является также и конструктором преобразования) ...

Не получается разобраться с конструктором копирования - C++
Вот начала разбираться с конструктором копирования. но я чёт запуталась с ним. Можете помочь? #ifndef PEOPLE_H #define PEOPLE_H ...

Функции в c++. никак не разобраться с задачками - C++
можете объяснить решения нескольких задач? застрял на передаче параметров по ссылке. а также : возврат результата по ссылке. не...

Никак не могу составить рекурсию - C++
Вычислить значение полинома степени n по формуле: Составить рекурсивную функцию Добавлено через 1 минуту sum a*x^i i=0 to n ...

никак не могу понять ошибку... - C++
#include<iostream> #include<conio.h> #include <stdio.h> #include <fstream> using namespace std; #include <stdlib.h> struct...

Не могу никак найти ошибку - C++
Вообщем есть код задача( задача тут не существенна). Есть класс: TArray.h #pragma once template<class T> class TArray { ...

Никак не могу найти ошибку - C++
#include<iostream.h> #include<conio.h> #include<math.h> #include<STDLIB.H> #include<COMPLEX.H> main() { const m=7,...

Не могу никак понять (новичек). - C++
Здравствуйте, необходимо найти сумму квадратов четных чисел в интервале заданном значениями переменных от m до n. Никак не могу понять...

Никак не могу понять что это - C++
#include <iostream> using namespace std; int main() { setlocale(LC_ALL, "rus"); double chocolate, cofe, milk; cout <<...

Никак не могу запустить reverse приложение c++ - C++
Нашёл такое решение: www.partow.net/programming/tcpproxy/index.html Скомпиллировал всё хорошо. Если я понял то позволяет из вне...


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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
obuhanoe
23 / 21 / 2
Регистрация: 25.08.2010
Сообщений: 93
28.09.2010, 16:37     Никак не могу разобраться с конструктором. #2
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
class cotrudnik
{
  public:
           cotrudnik();
           ~cotrudnik();
  private:
           int vozrast;
};
 
cotrudnik::cotrudnik()
{
 
}
 
cotrudnik::~cotrudnik()
{
    
}
вот так не работает?
или
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
class cotrudnik
{
  public:
           cotrudnik();
           ~cotrudnik();
  private:
           int vozrast;
};
 
cotrudnik::cotrudnik()
{
  vozrast = 10;
}
 
cotrudnik::~cotrudnik()
{
    
}
manking
1 / 1 / 0
Регистрация: 28.09.2010
Сообщений: 106
28.09.2010, 17:04  [ТС]     Никак не могу разобраться с конструктором. #3
Спасибо. Использую ваш код, почему решил поместить его вне функции main Я классы пытался создать внутри функции main.
А как содал вне заработало.
только не понимаю, классы вообще лучше не создавать внутри функции main?
asics
Freelance
Эксперт С++
2846 / 1783 / 144
Регистрация: 09.09.2010
Сообщений: 3,841
28.09.2010, 17:12     Никак не могу разобраться с конструктором. #4
Цитата Сообщение от manking Посмотреть сообщение
только не понимаю, классы вообще лучше не создавать внутри функции main
Естественно,классы нужно создавать глобально.
ForEveR
В астрале
Эксперт С++
7970 / 4732 / 320
Регистрация: 24.06.2010
Сообщений: 10,541
Завершенные тесты: 3
29.09.2010, 01:49     Никак не могу разобраться с конструктором. #5
Asics^, Ничего естественного тут нет. Если данные классы нужны только в одной функции то зачем забивать глобальное пространство? Хотя в общем случае, конечно, лучше в глобальном. Но все же.

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() {}
        void SetEl(int i_){i=i_;}
        const int GetEl() const {return i;}
    private:
        int i;
    };
    A Ob;
    Ob.SetEl(5);
    std::cout<<Ob.GetEl();
    return 0;
}
asics
Freelance
Эксперт С++
2846 / 1783 / 144
Регистрация: 09.09.2010
Сообщений: 3,841
29.09.2010, 16:10     Никак не могу разобраться с конструктором. #6
Lavroff, Но самые простые примеры класов в книгах создаютсо глобально,хоч и нужны только одной функции.
Yandex
Объявления
29.09.2010, 16:10     Никак не могу разобраться с конструктором.
Ответ Создать тему
Опции темы

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