Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Показать сообщение отдельно
pito211
186 / 173 / 18
Регистрация: 22.03.2010
Сообщений: 612
08.06.2011, 11:57 0

В конструкторе вложенного класса инициализируется приватное поле. Потом вызывается функция-метод этого класса и выводит значение этого поля НО НЕ ТО!

08.06.2011, 11:57. Просмотров 2325. Ответов 21
Метки (Все метки)

Ответ

это как то подозрительно, хороший компилятор должен обругаться
C++
1
2
3
4
B B_() {
 
   B();
  }
функция ничего не возвращает. Наверно ты хотел
C++
1
2
3
4
B B_() {
 
   return B();
  }
тогда вот эта штука
C++
1
ob_1.B_()
создаст объект класса B, c проинициализированной i = 0.
Затем к этой штуке применяется оператор (), который выводит i=0, а аргумент х впринципе никак не влияет на вывод (). Всё логично, что не так?

Добавлено через 3 минуты
кстати объект, который ты создаёшь таким хитрым способом навсегда теряется в памяти. Наверно лучше сделать что-то типа того
C++
1
2
B &b = ob_1.B_();
b.operator(6);
чтобы с ним работать потом можно было. Ещё меня смущает return B(); мне кажется надо создать в динамической памяти и вернуть на него ссылку, а то как то опасно это выглядит

Добавлено через 5 минут
ты наверно g++ компилировал. Вроде он позволяет делать функции, которые потом ничего не возвращают. Точнее эта штука
C++
1
2
3
4
B B_() {
 
   B();
  }
наверняка что-нибудь вернула, надо посмотреть в дизасме, у меня в ВС это просто не компилируется. Какой-нибудь левый дефолтный адресс, по которому естественно никакого объекта B и впомине не было, соответсвенно i в нём не определенна. Я так думаю

Вернуться к обсуждению:
В конструкторе вложенного класса инициализируется приватное поле. Потом вызывается функция-метод этого класса и выводит значение этого поля НО НЕ ТО!
1
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
08.06.2011, 11:57
Готовые ответы и решения:

Может ли метод класса возвращать экземпляр этого же класса?
такой вопрос, реально что бы функция класса имела тип класса(возвращала класс),...

Как вызвать виртуальную функцию из дочернего класса, если она определена и вызывается в конструкторе РОДИТЕЛЬСКОГО класса?
Ну то есть так: есть родительский и дочерний класс, в родительском определен...

Создать шаблонный класс и наследованный от этого класса метод
Создать шаблонный класс и наследованный от этого класса метод(естественно...

Сам вопрос: почему функция-член одного класса не вызывается из функции-члена другого класса?
//Щас всё объясню. Так, имеем два класса, в одном я определил функцию-член. Все...

Построение описания класса, создание и уничтожение объектов этого класса
Построить описание класса, содержащего информацию о почтовом адресе...

21
Другие темы раздела
C++ Футбольный ЧЕМПИОНАТ!!! http://www.cyberforum.ru/cpp-beginners/thread315511.html
Исходные данные или результат или и то и другое должно размещаться в текстовом файле. Отсортировать список команд по суммам очков двух туров футбольного чемпионата.
C++ Подсчитать количество подстрок в текстовом файле Помогите написать программу которая может подсчитать сколько раз подстрока встречается в текстовом файле. http://www.cyberforum.ru/cpp-beginners/thread315507.html
Рекурсия: вычислить сумму членов заданной последовательности C++
Составить программу с использованием рекурсивной функции, в которой вычислить сумму 12 членов рекурсивной последовательности Х0=1; Х1=1; Хк=0,7Хк-1+1,1Хк-2, к=2,3,... Добавлено через 3 часа 41...
Заменить комментарии нечетной строки комментариями четной C++
Исходный текст должен содержаться в одном файле, результат — во втором файле. В программе на ассемблере заменить комментарии нечетной строки комментариями четной.
C++ Строки с++ http://www.cyberforum.ru/cpp-beginners/thread315494.html
a)Дана строка. Подсчитать общее количество содержащихся в ней строчных латинских и русских букв. b) Дана строка. Вывести строку, содержащую те же символы, но расположенные в обратном порядке. ...
C++ Вывести элементы массива в определенном порядке здраствуйте! кто может помогите пож-та или подскажите чем сможете... a)Дан массив A размера N. Вывести вначале его элементы с нечетными номерами в порядке возрастания номеров, а затем — элементы с... подробнее
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru