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

Обращение к мемберам класса под другим именем - C++

Восстановить пароль Регистрация
 
Zuhher
Сообщений: n/a
20.09.2011, 18:39     Обращение к мемберам класса под другим именем #1
Здравствуйте.
Возможно ли каким-то образом обращаться к мемберам под другими именами, но так, чтобы подсказка в Visual Studio работала верно.
При помощи #define у меня вышло, т.е. код
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
class vehicle
{
public:
    int int1;
    int int2;
    int int3;
};
 
#define engineHP int1   //мощность дигателя
#define maxSpeed int2   //максимальная скорость
#define maxCargo int3   //максимальный перевозимый груз
#define normalSpeed int2//средняя рабоая скорость
#define addCargo int3   //сколько гурза может тащить в прицепе
...
    vehicle car;
    car.engineHP = 300;
    car.MaxSpeed = 180;
    car.maxCargo = 400;
    vehicle tractor;
    tractor.engineHP = 1000;
    tractor.normSpeed = 20;
    tractor.addCargo = 25000;
работает. Но при этом в подсказке после того как ставлю точку в списке есть только int1, int2, int3, хотя это и понятно.

Суть вопроса в том, возможно ли каким-то образом чтобы в подсказке высвечивались day, month, year; width, length, height, и, если можно, то как? Я в этом деле не силен, поэтому не знаю как это сделать, но согласен на все что угодно: создание других классов на базе этого, перегрузка, если это возможно (хотя я и не представляю себе как)...
Почему это надо? Этот класс я для примера привел, а на самом деле есть класс с набором методов, которые абсолютно одинаковы как для первого случая (car), так и для другого (tractor). Не хочется делать два абсолютно одинаковых класса. Возможно есть способ как-то переназначить это дело.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
20.09.2011, 18:39     Обращение к мемберам класса под другим именем
Посмотрите здесь:

Обращение к данным класса. C++
C++ Обращение к статической функции класса
C++ Описание класса с именем PERSON
C++ обращение к приватному полю класса
C++ Описание класса с именем TRAIN
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Jupiter
Каратель
Эксперт C++
6543 / 3963 / 226
Регистрация: 26.03.2010
Сообщений: 9,273
Записей в блоге: 1
Завершенные тесты: 2
20.09.2011, 20:24     Обращение к мемберам класса под другим именем #2
бредятину вы придумали товарищ, по вашему tractor не обладает максимальной скортью, а автомобиль не имеет средней(нормальной) скорости, делайте все 6 полей класса
Zuhher
Сообщений: n/a
20.09.2011, 23:47     Обращение к мемберам класса под другим именем #3
На всякий случай повторю, это чисто пример, от фонаря, придуманный впопыхах для наглядности. Не более не менее. И, коль уж оно понадобилось в том виде, в каком я просил, значит оно понадобилось.

Хорошо, допустим класс будет другим...

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
class Arr
{
public:
    CString str1, str2, str3;
    CString Out(CString sym);
...
Arr FIO;
FIO.secName = L"Иванов";
FIO.Name = L"Петр";
FIO.thirdName = L"Сидорович";
Arr date;
date.day = L"12";
date.month = L"12";
date.year = L"2012";
Arr box;
box.width = L"5";
box.length = L"10";
box.height = L"20";
 
CString output;
output = FIO.Out(L" "); //output = "Иванов Петр Сидорович"
output = date.Out(L".");//output = "12.12.2012"
output = box.Out(L"x"); //output = "5x10x20"
так, надеюсь, понятней и мыслей об объединении всего в один класс не возникнет...
CAHTEXHUK
Заблокирован
21.09.2011, 03:38     Обращение к мемберам класса под другим именем #4
Цитата Сообщение от Zuhher Посмотреть сообщение
Почему это надо? Этот класс я для примера привел, а на самом деле есть класс с набором методов, которые абсолютно одинаковы как для первого случая (car), так и для другого (tractor)
vehicle - абстрактный базовый класс, car и tractor - наследуются от него
lemegeton
 Аватар для lemegeton
2910 / 1339 / 133
Регистрация: 29.11.2010
Сообщений: 2,720
21.09.2011, 18:09     Обращение к мемберам класса под другим именем #5
Сделайте функции геттеров и сеттеров и назовите их как хотите. Так, как вы пишете, сделать можно, но подсказок в студии не будет.
Yandex
Объявления
21.09.2011, 18:09     Обращение к мемберам класса под другим именем
Ответ Создать тему
Опции темы

Текущее время: 11:23. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru