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

Неправельно работает конструктор(наверно) - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Перевести с QBasic на С++ http://www.cyberforum.ru/cpp-beginners/thread923395.html
Добрый день.Имеется рабочий код на QBasic,хочу переписать его на C++.Пока не получается,требуется ваша помощь. CLS INPUT "ширина общ", x INPUT "шир1", a INPUT "шир2 ", b INPUT "шир3 ", c INPUT "шир4 ", d INPUT "шир5 ", e
C++ Кольцевой буфер Здравствуйте, уважаемые пользователи. Мне поставили задачу, которую я один решить не могу и поэтому обращаюсь за помощью к вам. Итак, у нас есть файл и мне нужно отфильтровать его. Но он просто огромный и мне сказали реализовать эту процедуру с помощью кольцевого буфера. Я не до конца понимаю каким образом мне сформировать его и сделать так, чтобы при окончании буфера он автоматически скидывал... http://www.cyberforum.ru/cpp-beginners/thread923380.html
Перемещение содержимого из одного байта в другой байт C++
Здравствуйте все. Есть char A=3; char B=0; Как переместить физическое содержание битов из байта A в байт В, чтобы стало A=0 B=3;
Применение полученных знаний. Больная тема C++
Здравствуйте, уважаемые друзья! Хотел бы немножко поговорить с опытными людьми и узнать, как научиться применять свои знания, полученные в процессе обучения ? Вот предположим я - студент 4го курса, отличник, учусь на программиста, но есть одна проблема: я совершенно не понимаю, как применять свои знания. Я прочитал несколько книг по Си и Си++ (вне программы университета) справлялся с задачами,...
C++ Замена виртуальных функций шаблонами http://www.cyberforum.ru/cpp-beginners/thread923277.html
Такая задача - нужно заменить виртуальные функции шаблонами. Можно сделать так: struct Derived1; struct Derived2; template <typename T> struct Base { void f(); };
C++ Передача звука, приём Доброго времени суток. Вот задумал создать, что то на подобии голосового чата, но вот нет навыков в данной сфере. Может, кто то уже делал что то подобное, если можно подскажите. подробнее

Показать сообщение отдельно
alsav22
5417 / 4813 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
15.07.2013, 15:18
Цитата Сообщение от лилиэн Посмотреть сообщение
но почему создаются два элемента класса?? я же всего 1 создаю..
Потому что, перед инициализацией объекта производного класса, вызывается констуктор базового класса:
C++
1
2
3
4
5
6
7
8
9
10
11
class node:public human
{
      private:
      node* next;
      public:
      node() // : human() // здесь конструктор (по умолчанию) базового класса вызывается явно или (в вашем случае) не явно.
      {
            //human();
            next=NULL;
      }
};
Поэтому писать, в теле конструктора производного класса, вызов конструктора базового класса - не нужно. Объект создаётся один - node, но в нём, как часть, присутствует и объект базового класса, для инициализации которого, и вызывается конструктор базового класса.

Добавлено через 17 минут
И ошибка в конструкторе:
C++
1
2
3
4
int lengh;
lengh = strlen(tmp_name);
name = new char[lengh + 1]; // памяти нужно выделять на 1 больше ( для  '\0'), чем выдаёт strlen().
strcpy(name, tmp_name);
C++
1
2
3
4
5
6
7
8
9
10
11
12
int main()
{
    const node *first = new node;
    system("color 1B");
    cout<<"\n";
    
    delete first;
    
    cout<<"==========================ENding PRogramm=======================";
    system("pause");
    return 1;
}
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru