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

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

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

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

01.05.2012, 19:30. Просмотров 545. Ответов 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 
}
Объясните что происходит пожалуйста? Путаюсь с наследованием
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
01.05.2012, 19:30     В чем разница создания объекта?
Посмотрите здесь:

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

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

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

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

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

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

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
gooseim
Эксперт С++
508 / 412 / 37
Регистрация: 23.09.2010
Сообщений: 1,159
01.05.2012, 19:42     В чем разница создания объекта? #2
Вообще-то должно быть:
Constructor B without parameters
Constructor A without parameters
zzz_
5 / 5 / 0
Регистрация: 08.05.2011
Сообщений: 215
01.05.2012, 19:43  [ТС]     В чем разница создания объекта? #3
при
Цитата Сообщение от zzz_ Посмотреть сообщение
A a();
- черный экран
gooseim
Эксперт С++
508 / 412 / 37
Регистрация: 23.09.2010
Сообщений: 1,159
01.05.2012, 19:44     В чем разница создания объекта? #4
zzz_, это понятно, но во втором случае должно быть, как я сказал.
zzz_
5 / 5 / 0
Регистрация: 08.05.2011
Сообщений: 215
01.05.2012, 19:45  [ТС]     В чем разница создания объекта? #5
Во втором так и есть, я же написал. Вопрос как раз в том - что означает первая запись
C++
1
A a();
gooseim
Эксперт С++
508 / 412 / 37
Регистрация: 23.09.2010
Сообщений: 1,159
01.05.2012, 19:47     В чем разница создания объекта? #6
Вы написали:
Constructor B with parameters,Constructor A without parameters
В первом случае запись A a(); означает объявление функции.
gray_fox
What a waste!
1443 / 1172 / 61
Регистрация: 21.04.2012
Сообщений: 2,451
Завершенные тесты: 3
01.05.2012, 19:54     В чем разница создания объекта? #7
Цитата Сообщение от zzz_ Посмотреть сообщение
A a();
Компилятор трактует это как прототип функции с именем a без параметров с возвращаемым значением типа A.
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
Извиняюсь - моя опечатка.
gray_fox
What a waste!
1443 / 1172 / 61
Регистрация: 21.04.2012
Сообщений: 2,451
Завершенные тесты: 3
01.05.2012, 19:59     В чем разница создания объекта? #9
Цитата Сообщение от zzz_ Посмотреть сообщение
Это всего лишь её объявление.
Если не ошибаюсь, прототип функции и есть её объявление.
zzz_
5 / 5 / 0
Регистрация: 08.05.2011
Сообщений: 215
01.05.2012, 20:00  [ТС]     В чем разница создания объекта? #10
Да, всё верно. Речь же о том, что мы объявили функцию. (и она лежит где-то там). Потом нужен её вызов. Пока писал - додумался. То есть, собственно происходит определение - и всё - ни вызова ни чего. Поэтому и черный экран?
gray_fox
What a waste!
1443 / 1172 / 61
Регистрация: 21.04.2012
Сообщений: 2,451
Завершенные тесты: 3
01.05.2012, 20:06     В чем разница создания объекта? #11
Цитата Сообщение от zzz_ Посмотреть сообщение
Поэтому и черный экран?
Не знаю, по моему, должна быть ошибка компиляции, т.к. объявили функцию и создали объект с одним и тем же именем.
zzz_
5 / 5 / 0
Регистрация: 08.05.2011
Сообщений: 215
01.05.2012, 20:07  [ТС]     В чем разница создания объекта? #12
Нет, объект я не создаю получается в майне только - A a();
gray_fox
What a waste!
1443 / 1172 / 61
Регистрация: 21.04.2012
Сообщений: 2,451
Завершенные тесты: 3
01.05.2012, 20:12     В чем разница создания объекта? #13
Цитата Сообщение от zzz_ Посмотреть сообщение
объект я не создаю
Получается у вас main ничего не происходит, ищите проблему в другом.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
01.05.2012, 20:12     В чем разница создания объекта?
Еще ссылки по теме:

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

Шаблоны. В чем разница? - C++
В чем разница между этими объявлениями? Вроде и так можно и этак. А как правильней? template &lt;class T&gt; struct list { T value; ...

Объясните в чем разница - C++
Здравствуйте! У меня такой вопрос в чем разница записи switch(n) { case 1: cout &lt;&lt; end; case 2: cout &lt;&lt; endl; ...

Подскажите в чем разница - C++
#include &lt;fstream&gt; #include &lt;cmath&gt; using namespace std; int main() { ifstream x(&quot;INPUT.TXT&quot;); ofstream...


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

Или воспользуйтесь поиском по форуму:
zzz_
5 / 5 / 0
Регистрация: 08.05.2011
Сообщений: 215
01.05.2012, 20:12  [ТС]     В чем разница создания объекта? #14
Цитата Сообщение от zzz_ Посмотреть сообщение
{clrscr();
Происходит)
Yandex
Объявления
01.05.2012, 20:12     В чем разница создания объекта?
Ответ Создать тему
Опции темы

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