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

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

Войти
Регистрация
Восстановить пароль
 
 
icpu
427 / 340 / 81
Регистрация: 10.03.2011
Сообщений: 1,463
Записей в блоге: 2
#1

Приватный конструктор и стандартный контейнер. Два барана на мосту - C++

29.08.2013, 21:49. Просмотров 795. Ответов 19
Метки нет (Все метки)

Всем суп!
Итак, банальная вещь - в заголовке - не желает компилироваться. Суть, немного упрощённая, такова:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
class AAA {
   private:
      const int ci;
      AAA();
   public:
      AAA(int c):ci(c);
      AAA(const AAA&);
      AAA& operator=(const AAA&);
   }
class BBB {
   private:
      std::map <int,AAA> AAAmap;
   public:
      c(){};
      int foo(int k,int c)
         {
         AAA wut(c);
         AAAmap[k]=wut;
         };
   }
При этом компилятор ругается:
C++
1
2
error C2248: AAA::AAA: невозможно обратиться к private член, объявленному в классе "AAA"
E:\Program Files\Microsoft Visual Studio 10.0\VC\include\map
Что для меня весьма странно, ведь явно я его ни разу не вызывал. Чего не так?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
29.08.2013, 21:49
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Приватный конструктор и стандартный контейнер. Два барана на мосту (C++):

Приватный конструктор и деструктор - C++
Зачем нужны приватный конструктор и деструктор? Как они работают?

Стандартный векторный контейнер - C++
&quot;Обычно элементы создаются с помощью оператора new() и освобождаются с помощью оператора delete(), т.е. для создания нового элемента...

Класс как стандартный контейнер - C++
Здорова господа! Опять есть условие задачи: Напишите такие классы, чтобы Vector из 16.2.1 и Vector из 16.2.2 могли использоваться как...

Стандартный конструктор у union? - C++
Не могу сообразить в чем проблема struct Foo { union { struct {float x,y,z;} v; struct { ...

Struct (есть ли стандартный конструктор) - C++
Имеется студия 2010 struct _1C { string Tag; string Rus; string Eng; }; В коде пишу: vector&lt;_1C&gt;

Стандартный конструктор копировщик и оператор = не справляются со своей задачей - C++
Всем привет ! Выяснил , что стандартный конструктор копировщик и оператор = не справляются со своей задачей в случае, если...

19
icpu
427 / 340 / 81
Регистрация: 10.03.2011
Сообщений: 1,463
Записей в блоге: 2
29.08.2013, 22:56  [ТС] #16
Сдаётся мне, что всё дело в
C++
1
islands[isl].Load(ic);
Константа нормально кушалась, а вот operator[] портил воздух.
0
gray_fox
What a waste!
1552 / 1257 / 74
Регистрация: 21.04.2012
Сообщений: 2,634
Завершенные тесты: 3
29.08.2013, 22:58 #17
Цитата Сообщение от ValeryS Посмотреть сообщение
C++
1
A(const A & b){a=b.a;}
Тут присваивание потому что. Инициализировать надо в списке инициализации:
C++
1
A(const A & b) : a(b.a) {}
Добавлено через 50 секунд
Цитата Сообщение от ValeryS Посмотреть сообщение
A(){ a=5;}
Так кстати тоже не получиться.
1
icpu
427 / 340 / 81
Регистрация: 10.03.2011
Сообщений: 1,463
Записей в блоге: 2
29.08.2013, 22:59  [ТС] #18
ValeryS, я же писал, что конструктор правильный: class A {... A(int _a):a(_a){}; }
А решение простое: использовать std::map::at()
0
ValeryS
Модератор
7011 / 5349 / 527
Регистрация: 14.02.2011
Сообщений: 18,048
29.08.2013, 23:09 #19
Цитата Сообщение от icpu Посмотреть сообщение
я же писал, что конструктор правильный: class A {... A(int _a):a(_a){}; }
где?
в первом сообщении вообще реализации нет
в 12 сообщении нет const
Цитата Сообщение от gray_fox Посмотреть сообщение
Так кстати тоже не получиться.
благодарствую
подзабыл малеха
не так часто пользуюсь константами, тем более в классе
не вижу преимуществ
0
gray_fox
29.08.2013, 23:15     Приватный конструктор и стандартный контейнер. Два барана на мосту
  #20

Не по теме:

Цитата Сообщение от ValeryS Посмотреть сообщение
не так часто пользуюсь константами, тем более в классе
не вижу преимуществ
Я не вижу смысла делать изменяемым то, что не изменяемо )

0
29.08.2013, 23:15
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
29.08.2013, 23:15
Привет! Вот еще темы с ответами:

Запустить приватный конструктор signleton PDO - PHP ООП
И снова singleton , не пойму как запустить приватный конструктор , мне нужно получить от него экземпляр соединения. А ООп у меня на...

Объявить класс, содержащий массив, индексатор для работы с этим массивом и приватный конструктор - C#
Объявить класс, содержащий одномерный целочисленный массив, индексатор для работы с этим массивом, а также приватный конструктор,...

Стандартный конструктор - C++ Builder
Не так давно знаком с С++ вообще и с ВС++В в частности, так что извините за глупость вопроса ) Задача: нужно, чтобы по нажатию TButton...

Стандартный контрол (контейнер) который мог бы в себе содержать элементы управления. - Visual Basic
Подскажите, есть какой либо стандартный контрол (контейнер) который мог бы в себе содержать элементы управления, а при большом их...


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

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

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