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

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

Войти
Регистрация
Восстановить пароль
 
XRoy
853 / 703 / 217
Регистрация: 15.04.2013
Сообщений: 2,047
Записей в блоге: 5
#1

Visual Studio странное поведение - C++

31.03.2014, 18:01. Просмотров 185. Ответов 1
Метки нет (Все метки)

Почему данный код компилируется и работает в Visual Studio? Ведь мы берем ссылку от временного объекта.

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
28
29
30
31
32
33
34
#include <iostream>
 
using namespace std;
 
class Class{
private:
    int a;
public:
    Class();
    Class(int _a) : a(_a) {};
    friend ostream& operator<<(ostream & stream, Class c);
};
Class foo();
 
int main() {
    Class * obj;
 
    obj = &foo();
 
    cout << *obj << endl;
 
    return 0;
}
 
Class foo()
{
    return Class(10);
}
 
ostream& operator<<(ostream & stream, Class c)
{
    stream << "Value a:" << c.a;
    return stream;
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
31.03.2014, 18:01
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Visual Studio странное поведение (C++):

Разное поведение программы в консоли и в Visual Studio 2010 - C++
Добрый день! Я новичок - изучаю С++ третий день. Во время выполнения упражнения с функцией rand() столкнулся с проблемой. Перед ее...

Имеются ли отличия в компиляторах у сред разработки Visual Studio 2006 и Visual Studio 2015 ? - C++
скажите а где найти среду 2006 года? или можно использовать 2015 год?

Странное поведение - C++
Здравствуйте еще раз :) Теперь возникла другая непонятка. Есть класс StringParser, объекты которого умеют разбивать строку на подстроки,...

Странное поведение new - C++
Объясните почему оператор new выделяет неверное количество памяти? # include &lt;iostream&gt; using namespace std; char* interpitator( int...

Странное поведение string - C++
Здравствуйте. Сейчас я пытаюсь скомпилировать под Windows проект, который ранее писался под Linux. Делаю я это с помощью MinGW от...

Странное поведение указателей - C++
Здравствуйте, может кто-нибудь объяснить столь странное поведение указателя. Вот код. int main() { const int Width = 3; ...

1
alsav22
5428 / 4823 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
31.03.2014, 18:56 #2
Скорее всего, реализация такая. mingw не компилирует, студия выдаст предупреждение (если повысить уровень предупреждений). Вопрос больше по студии:
http://www.cyberforum.ru/visual-cpp/
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
31.03.2014, 18:56
Привет! Вот еще темы с ответами:

Странное поведение транслятора - C++
В следуюшем примере код компилируется нормально, но объект класса b не содается (пробывал на Visual studio 10 и на Borland builder 5), что...

Странное поведение программы - C++
Перечитываю Герберт Шилдт: С++ базовый курс. Простая программа: #include &lt;iostream&gt; using namespace std; int main() { ...

Странное поведение присваивания - C++
class Lexem { public: uint id; uint value; uint line; uint pos; bool operator==(int a){ return a...

Странное поведение компилятора - C++
Всем привет! Я конечно понимаю что нужно выкладывать минимальный код повторяющий мою проблему но он будет достаточно грамосток т.к. в...


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

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

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