Форум программистов, компьютерный форум 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 Invalid { }; // for exception handing http://www.cyberforum.ru/cpp-beginners/thread646098.html
C++ Пять самых длинных слов
Дана строка слов разделенных пробелами, запятыми, точками. Сформируйте новую строчку из пяти самых длинных слов. #include <iostream> #include <string.h> using namespace std; void main(){ const int max=100; char str,words;
C++ this и конструктор
Всем привет! Столкнулся с задачей: У класса есть статический указатель, который инициализируется CableTV* CableTV :: ptr = new CableTV; Есть также два указателя в привате PaketAndChannels * paketandchannel; Clients *client;
C++ Что считывает антивирусный сканнер с файлов? http://www.cyberforum.ru/cpp-beginners/thread645984.html
Привет! Скажите пожалуйста, что считывает антивирусный сканер? Как эти шестнадцатеричные числа называются у файлов? И как узнать у файлов в C++ эту сумму? Если не в курсе как ее получить, то просто название скажите) Заранее спасибо.
C++ Описать функцию, которая формирует текстовую строку Дан текст в файле F1 в виде: ИМЯ ОТЧЕСТВО ФАМИЛИЯ_1 ИМЯ ОТЧЕСТВО ФАМИЛИЯ_2 ... Описать функцию, которая формирует текстовую строку в формате: ФАМИЛИЯ И.О. Сохранить преобразованный текст в файле F2. подробнее

Показать сообщение отдельно
moskitos80
 Аватар для moskitos80
43 / 43 / 3
Регистрация: 04.10.2011
Сообщений: 146
Завершенные тесты: 1
03.09.2012, 14:12     Вызов конструктора со скобками и без
Всем здравствуйте С++ только изучаю. В общем, есть у меня такой код:

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? Подозреваю, что здесь опять какое - то таинство с конструкторами
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 12:22. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru