Форум программистов, компьютерный форум, киберфорум
Наши страницы

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

Войти
Регистрация
Восстановить пароль
 
zzz_
5 / 5 / 0
Регистрация: 08.05.2011
Сообщений: 215
#1

В чем разница создания объекта? - C++

01.05.2012, 19:30. Просмотров 568. Ответов 13
Метки нет (Все метки)

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#include <iostream.h>
#include <conio.h>
class B
{private: int b1,b2;
public:
B()
{cout<<"Constructor B without parameters"<<endl;
}
B(int i, int j):b1(i),b2(j)
{cout<<"Constructor B with parameters"<<endl;
}
};
class A: public B
{public: A()
{cout<<"Constructor A without parameters"<<endl;
}
};
void main()
{clrscr();
A a();//если так, то черный экран
A a;//Constructor B with parameters,Constructor A without parameters 
}
Объясните что происходит пожалуйста? Путаюсь с наследованием
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
01.05.2012, 19:30
Я подобрал для вас темы с готовыми решениями и ответами на вопрос В чем разница создания объекта? (C++):

'0' и 0, в чем разница? - C++
Подскажите пожалуйста, если я напишу число в ' ' или число без кавычек, то что изменится? Код элемента(цифры)? И для чего это нужно? ...

В чем разница - C++
Здравствуйте. Я новичок, как здесь, так и в программировании, только учусь. И ищя литературу прочитывал кучу информации, наткнулся на этот...

В чем разница? - C++
Скажите в чем разница между двумя кусками кода: std::string a; while ((std::cin&gt;&gt;a)!=&quot;Quit&quot;) { std::cout&lt;&lt;a; ...

В чем разница? - C++
Здравствуйте! Хотел узнать, в чем разница между С++ которым писали в старом добром BorlandC, в студии и VisualC++? Думал тем, что...

В чем разница - C++
В чем разница между: typedef double(*Function_ptr)(double); и typedef double Function(double); Первое - это указатель на...

В чем разница. - C++
Извиняюсь за тупой вопрос, но в чем разница. оператора ++ к примеру. a=b++ и a=++b ?

13
gooseim
Эксперт С++
510 / 414 / 37
Регистрация: 23.09.2010
Сообщений: 1,159
01.05.2012, 19:42 #2
Вообще-то должно быть:
Constructor B without parameters
Constructor A without parameters
0
zzz_
5 / 5 / 0
Регистрация: 08.05.2011
Сообщений: 215
01.05.2012, 19:43  [ТС] #3
при
Цитата Сообщение от zzz_ Посмотреть сообщение
A a();
- черный экран
0
gooseim
Эксперт С++
510 / 414 / 37
Регистрация: 23.09.2010
Сообщений: 1,159
01.05.2012, 19:44 #4
zzz_, это понятно, но во втором случае должно быть, как я сказал.
0
zzz_
5 / 5 / 0
Регистрация: 08.05.2011
Сообщений: 215
01.05.2012, 19:45  [ТС] #5
Во втором так и есть, я же написал. Вопрос как раз в том - что означает первая запись
C++
1
A a();
0
gooseim
Эксперт С++
510 / 414 / 37
Регистрация: 23.09.2010
Сообщений: 1,159
01.05.2012, 19:47 #6
Вы написали:
Constructor B with parameters,Constructor A without parameters
В первом случае запись A a(); означает объявление функции.
2
gray_fox
What a waste!
1551 / 1256 / 74
Регистрация: 21.04.2012
Сообщений: 2,634
Завершенные тесты: 3
01.05.2012, 19:54 #7
Цитата Сообщение от zzz_ Посмотреть сообщение
A a();
Компилятор трактует это как прототип функции с именем a без параметров с возвращаемым значением типа A.
0
zzz_
5 / 5 / 0
Регистрация: 08.05.2011
Сообщений: 215
01.05.2012, 19:56  [ТС] #8
gray_fox, Хм, если это прототип, то где вызов функции. Это всего лишь её объявление.

Цитата Сообщение от gooseim Посмотреть сообщение
Вы написали:
Constructor B with parameters,Constructor A without parameters
Извиняюсь - моя опечатка.
0
gray_fox
What a waste!
1551 / 1256 / 74
Регистрация: 21.04.2012
Сообщений: 2,634
Завершенные тесты: 3
01.05.2012, 19:59 #9
Цитата Сообщение от zzz_ Посмотреть сообщение
Это всего лишь её объявление.
Если не ошибаюсь, прототип функции и есть её объявление.
1
zzz_
5 / 5 / 0
Регистрация: 08.05.2011
Сообщений: 215
01.05.2012, 20:00  [ТС] #10
Да, всё верно. Речь же о том, что мы объявили функцию. (и она лежит где-то там). Потом нужен её вызов. Пока писал - додумался. То есть, собственно происходит определение - и всё - ни вызова ни чего. Поэтому и черный экран?
0
gray_fox
What a waste!
1551 / 1256 / 74
Регистрация: 21.04.2012
Сообщений: 2,634
Завершенные тесты: 3
01.05.2012, 20:06 #11
Цитата Сообщение от zzz_ Посмотреть сообщение
Поэтому и черный экран?
Не знаю, по моему, должна быть ошибка компиляции, т.к. объявили функцию и создали объект с одним и тем же именем.
0
zzz_
5 / 5 / 0
Регистрация: 08.05.2011
Сообщений: 215
01.05.2012, 20:07  [ТС] #12
Нет, объект я не создаю получается в майне только - A a();
0
gray_fox
What a waste!
1551 / 1256 / 74
Регистрация: 21.04.2012
Сообщений: 2,634
Завершенные тесты: 3
01.05.2012, 20:12 #13
Цитата Сообщение от zzz_ Посмотреть сообщение
объект я не создаю
Получается у вас main ничего не происходит, ищите проблему в другом.
1
zzz_
5 / 5 / 0
Регистрация: 08.05.2011
Сообщений: 215
01.05.2012, 20:12  [ТС] #14
Цитата Сообщение от zzz_ Посмотреть сообщение
{clrscr();
Происходит)
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
01.05.2012, 20:12
Привет! Вот еще темы с ответами:

в чем разница? - C++
вот такая вот конструкция (условие)?ложь:истина дает такой же результат if(условие){истина}else{ложь} хотелось бы...

В чем разница между X x; и X x()? - C++
Корректный ли этот ответ?

В чем разница между С и С++ - C++
Возник вопрос в чем жи разница между С и С++ кроме того, что в С++ есть классы а в С их нету ?

В чем разница между [] и * ? - C++
Думал, что ни в чем, но когда попытался сделать так: (в файле 1) char lc; в файле 2: extern char* lc; Компилятор ругаться не стал,...


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

Или воспользуйтесь поиском по форуму:
14
Ответ Создать тему
Опции темы

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