0 / 1 / 0
Регистрация: 01.02.2012
Сообщений: 16
1

Инициализация константного статического объекта - члена класса

20.03.2013, 18:40. Показов 2219. Ответов 2
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Здравствуйте, у меня возникла проблема с инициализацией статического объекта, который является членом класса. Этот объект должен быть private-членом класса, и не должен быть изменен никаким образом. Это объект заранее созданного исключения, я подумал что практичнее будет единожды его создать и бросать один и тот же объект всегда, когда он будет нужен, вместо того, чтобы создавать новый.

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
namespace Triangle
{
 
// класс исключения
class triangle_exception: public std::exception
{
public:
    triangle_exception(const char *message = "Triangle exception"): exception(message) { }
};
 
// Класс, в котором используется исключение
class triangle
{
    double a, b, c;
    static const triangle_exception wrong_sides_ex; // Статический константный объект исключения (у меня это строка 24)
//...
};
triangle_exception triangle::wrong_sides_ex("Wrong values of sides lengths"); // Ошибка: объявление не совместимо c const Triangle::triangle_exception Triangle::triangle::wrong_sides_ex (объявлено в строке 24).
 
}
Меня смущает сообщение о том, что объект уже определен, и, вроде бы, компиллятор жалуется на то, что я второй раз его определяю. Но как тогда мне его инициализировать? Пробовал инициализировать внутри класса, но там можно инициализировать только целочисленные типы. Подскажите пожалуйста, как мне с этим справиться. Буду рад за развернутый ответ
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
20.03.2013, 18:40
Ответы с готовыми решениями:

Инициализация константного члена класса с проверкой значения
Допустим есть класс константным членом class a{ const int i; public: a(int...

Инициализация статического члена из шаблонного класса
Добрый день. Есть код: template<int test> class Test { template<int a> struct Inner ...

Инициализация в классе статического объекта класса :)
Добрый день! Огромное спасибо за ваше внимание! Помогите разобраться с такой проблемой. Есть чисто...

Инициализация статического члена std::vector в шаблонном классе
есть класс myclass , владеющий классом struct template<class T> class myclass { struct...

2
Почетный модератор
7393 / 2639 / 281
Регистрация: 29.07.2006
Сообщений: 13,696
20.03.2013, 18:46 2
const triangle_exception triangle::wrong_sides_ex = bla-bla-bla
1
0 / 1 / 0
Регистрация: 01.02.2012
Сообщений: 16
20.03.2013, 18:49  [ТС] 3
Цитата Сообщение от Vourhey Посмотреть сообщение
const triangle_exception triangle::wrong_sides_ex = bla-bla-bla
Спасибо большое, идиотский промах у меня получился с const .
0
20.03.2013, 18:49
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
20.03.2013, 18:49
Помогаю со студенческими работами здесь

По поводу статического члена класса и рекурсии
Привет! Тут вот небольшой вопросик по поводу. Читаю книжку Страуструпа нашего и возник вопросик. ...

ошибка: множественное определение статического члена класса
народ помогите разобраться с проблемой вот код #ifndef BANKACCOUNT_H #define BANKACCOUNT_H...

Инициализация константы-члена класса
Все привет! Возникла такая проблема: есть double константа-член класса, объявленная в секции...

Инициализация static члена класса
Добрый вечер! Есть класс, в нём в private реализован ещё один + это всё шаблоны. Во вложенном...


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru