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

Вызов конструктора со скобками и без - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Как правильно вставить код на ассемблере? http://www.cyberforum.ru/cpp-beginners/thread646124.html
Есть такой код: struct { unsigned long first_sect; unsigned nsect; void *buf; } cb; /** * getboot
C++ Ошибка при компиляции При компиляции конструктора класса, имеющего один из аргументов другого класса получаю ошибку. Ниже листинг программы и код ошибки. // Date 9.7.1.h #include"Month.h" class Year { class... http://www.cyberforum.ru/cpp-beginners/thread646098.html
C++ Пять самых длинных слов
Дана строка слов разделенных пробелами, запятыми, точками. Сформируйте новую строчку из пяти самых длинных слов. #include <iostream> #include <string.h> using namespace std; void main(){...
C++ this и конструктор
Всем привет! Столкнулся с задачей: У класса есть статический указатель, который инициализируется CableTV* CableTV :: ptr = new CableTV; Есть также два указателя в привате ...
C++ Что считывает антивирусный сканнер с файлов? http://www.cyberforum.ru/cpp-beginners/thread645984.html
Привет! Скажите пожалуйста, что считывает антивирусный сканер? Как эти шестнадцатеричные числа называются у файлов? И как узнать у файлов в C++ эту сумму? Если не в курсе как ее получить, то просто...
C++ Описать функцию, которая формирует текстовую строку Дан текст в файле F1 в виде: ИМЯ ОТЧЕСТВО ФАМИЛИЯ_1 ИМЯ ОТЧЕСТВО ФАМИЛИЯ_2 ... Описать функцию, которая формирует текстовую строку в формате: ФАМИЛИЯ И.О. Сохранить преобразованный текст в... подробнее

Показать сообщение отдельно
moskitos80
61 / 61 / 10
Регистрация: 04.10.2011
Сообщений: 217
Завершенные тесты: 1

Вызов конструктора со скобками и без - C++

03.09.2012, 14:12. Просмотров 1110. Ответов 8
Метки (Все метки)

Всем здравствуйте С++ только изучаю. В общем, есть у меня такой код:

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
#include <iostream>
 
using namespace std;
 
class Test {
    public :
        Test() : data(777)
        {}
        Test(int d) : data(d)
        {}
    protected :
        int data;
        friend ostream& operator << (ostream&, Test);
};
 
ostream& operator << (ostream& out, Test obj)
{
    out << "Object data: " << obj.data << endl;
    return out;
}
 
int main(int argc, char* argv[])
{
    // Test obj;  // Если так, то вывод будет ожидаемый: Object data: 777
    Test obj();   // Если так, то вывод программы будет: 1
    cout << obj << endl;
}
Так вот для меня загадка, почему при инициализации объекта без скобок: Test obj; всё работает нормально, а при инициализации со скобками: Test obj(); - вывод объекта превращается в 1? Подозреваю, что здесь опять какое - то таинство с конструкторами
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru