Форум программистов, компьютерный форум CyberForum.ru

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

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 26, средняя оценка - 4.88
Alejandro
0 / 0 / 0
Регистрация: 22.04.2012
Сообщений: 11
#1

Указатель на объект класса - C++

14.05.2012, 02:49. Просмотров 3704. Ответов 6
Метки нет (Все метки)

Добрый день!
Есть класс

Заполняю с помощью конструктора
C++ (Qt)
1
2
3
4
5
6
7
8
9
10
11
12
class TStol : public TMebel  
{
protected:
    AnsiString Kol_yashikov, Kol_polok;
 
public:
    TStol(char * Imya1, char * Tsena1, char * Vysota1, char *Shirina1, char * Material1,
        char * K_yash, char *K_pol) : TMebel
        (Imya1, Tsena1, Vysota1, Shirina1, Material1) {
        Kol_yashikov = AnsiString(K_yash);
        Kol_polok = AnsiString(K_pol);
    }
Создаю объект, всё как обычно
C++ (Qt)
1
Stol Sdo(im.c_str(), ts.c_str(), vys.c_str(), shir.c_str(), mat.c_str(), kol_ya.c_str(), kol_pol.c_str());
Но нужно сделать через указатели

C++ (Qt)
1
2
TStol* S = new (TStol);
S->Kol_polok = 3;
соответственно ошибка, переменная не доступна
E2247 'TStol::Kol_polok' is not accessible

Может кто-нибудь подсказать как получить доступ к переменным?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
14.05.2012, 02:49     Указатель на объект класса
Посмотрите здесь:

C++ Как получить указатель на объект класса CDocument
C++ Указатель,объект класса размещенный в динамической памяти
Создание полиморфного объекта, зачем создавать указатель на объект базового класса? C++
C++ Указатель на объект, или экземпляр класса?
Указатель на объект базового класса и адрес объекта производного класса C++
C++ Не удается разыменовать указатель на объект класса
Вернуть указатель на первый объект массива из шаблона класса C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Toshkarik
1139 / 856 / 51
Регистрация: 03.08.2011
Сообщений: 2,384
Завершенные тесты: 1
14.05.2012, 03:41     Указатель на объект класса #2
C++
1
TStol* S = new TStol();
Avazart
7066 / 5243 / 263
Регистрация: 10.12.2010
Сообщений: 23,070
Записей в блоге: 17
14.05.2012, 03:55     Указатель на объект класса #3
C++
1
2
3
TStol* S = new (im.c_str(), ts.c_str(), vys.c_str(), shir.c_str(), mat.c_str(), kol_ya.c_str(), kol_pol.c_str());
S->Kol_polok = 3;
delete S;
Либо
C++
1
2
3
Stol Sdo(im.c_str(), ts.c_str(), vys.c_str(), shir.c_str(), mat.c_str(), kol_ya.c_str(), kol_pol.c_str());
TStol* S=&Sdo;
S->Kol_polok = 3;
Alejandro
0 / 0 / 0
Регистрация: 22.04.2012
Сообщений: 11
14.05.2012, 14:58  [ТС]     Указатель на объект класса #4
Второй способ работает. Надеюсь что прокатит.
Avazart, благодарю!
Avazart
7066 / 5243 / 263
Регистрация: 10.12.2010
Сообщений: 23,070
Записей в блоге: 17
14.05.2012, 15:06     Указатель на объект класса #5
В первом пропустил словечко

C++
1
2
3
TStol* S = new TStol(im.c_str(), ts.c_str(), vys.c_str(), shir.c_str(), mat.c_str(), kol_ya.c_str(), kol_pol.c_str());
S->Kol_polok = 3;
delete S;
А вообще перегрузи конструктор
C++
1
2
3
4
5
6
TStol(TStol obj)
 {
 Kol_yashikov=obj.Kol_yashikov;
 Kol_polok=obj.Kol_polok;
 //итд другие поля
 }
И переменные в public перемести чтоб работало
C++
1
2
TStol* S = new (TStol);
S->Kol_polok = 3;
Alejandro
0 / 0 / 0
Регистрация: 22.04.2012
Сообщений: 11
14.05.2012, 15:19  [ТС]     Указатель на объект класса #6
И переменные в public перемести чтоб работало

C++
1
2
TStol* S = new (TStol);
S->Kol_polok = 3;
В public нельзя, потому что есть абстрактный базовый класс, там все поля в protected

Перегрузить попробую

Первый способ, вообще то что нужно!
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
14.05.2012, 15:23     Указатель на объект класса
Еще ссылки по теме:

C++ Статический указатель класса на объект этого же класса
C++ Двойной указатель на объект класса
C++ Указатель на объект из указателя на член класса
C++ Как получить указатель на объект класса из списка std::list?
Недопустимый неполный тип , или как передать в функцию указатель на объект класса , или просто объект C++

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

Или воспользуйтесь поиском по форуму:
Avazart
7066 / 5243 / 263
Регистрация: 10.12.2010
Сообщений: 23,070
Записей в блоге: 17
14.05.2012, 15:23     Указатель на объект класса #7
Тогда должны быть открытые методы для чтения и установки полей.
Yandex
Объявления
14.05.2012, 15:23     Указатель на объект класса
Ответ Создать тему
Опции темы

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