Отправляет email-рассылки с помощью сервиса Sendsay
  Все выпуски  

RFpro.ru: Программирование на C / C++


Хостинг портала RFpro.ru:
Московский хостер
Профессиональный ХОСТИНГ на базе Linux x64 и Windows x64

РАССЫЛКИ ПОРТАЛА RFPRO.RU

Лучшие эксперты по данной тематике

Асмик Гаряка
Статус: Советник
Рейтинг: 10960
∙ повысить рейтинг »
Коцюрбенко Алексей aka Жерар
Статус: Советник
Рейтинг: 4320
∙ повысить рейтинг »
CradleA
Статус: Бакалавр
Рейтинг: 2439
∙ повысить рейтинг »

/ КОМПЬЮТЕРЫ И СОФТ / Программирование / C/C++

Номер выпуска:1761
Дата выхода:16.07.2012, 12:30
Администратор рассылки:Киселёва Алёна aka Verena (Академик)
Подписчиков / экспертов:119 / 87
Вопросов / ответов:1 / 1

Консультация # 186442: Здравствуйте! У меня возникли сложности с таким вопросом: Программирую под Windows в среде MS Visual Studio 2010 на C++. 1) Есть следующий код: class CMyClass { public: const std::wstring MyText; CMyClass(const wchar_t* Text) : MyText(Text) { ; }; std::wstring Now() const ...


Консультация # 186442:

Здравствуйте! У меня возникли сложности с таким вопросом:
Программирую под Windows в среде MS Visual Studio 2010 на C++.
1) Есть следующий код:
class CMyClass
{
public:
const std::wstring MyText;
CMyClass(const wchar_t* Text) : MyText(Text)
{
;
};

std::wstring Now() const throw()
{
return MyText;
};
};
Как получается так, что член класса m_wstrText объявлен не как указатель на экземпляр (например, MyClass* MyCl), а в виде ссылки на класс?
Я так понимаю, что экземпляр класса std::wstring создается внутри экземпляра класса Exception? Здесь нет "подводного камня"?
2) Как устроена функция Cout, в смысле, почему получается, что в нее можно вводить данные, к примеру, так:
std::cout << "MyText #" << (A+1) << std::endl;
В нее ведь сколько угодно так можно вводить, верно?
Большое спасибо за ответ!

Дата отправки: 13.07.2012, 12:03
Вопрос задал: Илья
Всего ответов: 1
Страница онлайн-консультации »


Консультирует Harry Wanderer (1-й класс):

Здравствуйте, Илья!

Начнем с конца :)
cout << x для C++ означает вызов функции operator <<(cout,x). А поскольку эта функция созвращает сам поток cout, то можно вызывать следующую функцию... Т.е. cout << x << y << z... - по сути, operator <<(operator <<(operator <<(cout,x),y),z)...

По первому вопросу - m_wstrText вообще нигде не объявлен! Если вы имеете в виду MyText - то это член-данные класса CMyClass, инициализируемый только в конструкторе (т.к. объявлен как const, его нельзя менять в других вызовах). Класс Exception у вас вообще нигде и никак не участвует (throw() у вас означает, что данный метод гарантиированно не генерирует никаких исключений. Кстати, рекомендую книгу Саттера "Решение сложных задач на C++", чтобы разобраться, чем эта спецификация плоха).

Извините, но ваш вопрос получился некорректно заданным... Если мой ответ недостаточен или непонятен - попробуйте сформулировать во прос иначе, так как в вашем варианте на него просто нельзя однозначно корректно ответить :)

Консультировал: Harry Wanderer (1-й класс)
Дата отправки: 13.07.2012, 12:35
Рейтинг ответа:

НЕ одобряю 0 одобряю!


Оценить выпуск | Задать вопрос экспертам

главная страница  |  стать участником  |  получить консультацию
техническая поддержка  |  восстановить логин/пароль

Дорогой читатель!
Команда портала RFPRO.RU благодарит Вас за то, что Вы пользуетесь нашими услугами. Вы только что прочли очередной выпуск рассылки. Мы старались. Пожалуйста, оцените его. Если совет помог Вам, если Вам понравился ответ, Вы можете поблагодарить автора - для этого в каждом ответе есть специальные ссылки. Вы можете оставить отзыв о работе портале. Нам очень важно знать Ваше мнение. Вы можете поближе познакомиться с жизнью портала, посетив наш форум, почитав журнал, который издают наши эксперты. Если у Вас есть желание помочь людям, поделиться своими знаниями, Вы можете зарегистрироваться экспертом. Заходите - у нас интересно!
МЫ РАБОТАЕМ ДЛЯ ВАС!



В избранное