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

"вложенные классы" - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ обновление времени в програме. патерн Наблюдатель http://www.cyberforum.ru/cpp-beginners/thread933515.html
Здраствуйте. Нужно решыть было такое задание. Но я нашел его в нете. Код подан ниже. Автоматически должно виводитьсяся время и обновляться с помощью функии Tick() класа ClockTimer. Я понимаю немного...
C++ бусконечный цикл при вставке потомка корня возникает бесконечный цикл. в чем проблема #include<iostream> /* 1. Каждый узел является красным или черным. 2. Корень дерева является черным. 3. Каждый лист дерева... http://www.cyberforum.ru/cpp-beginners/thread933483.html
Когда приступать к практическому применению С++? C++
Всем привет! Долго читаю данный форум, много интересного и полезного! Где то месяц назад начал учить с++ , по учебникам. Вернее пока по одному учебнику =) Там много примеров использования разных...
String и русский язык C++
Доброго времени суток! Мой вопрос скорее всего задавался, но всё же как с клавиатуры ввести в string строку на русском, а затем вывести её на экран? Например, если собрать этот код #include...
C++ Пространство имен http://www.cyberforum.ru/cpp-beginners/thread933437.html
Я часто встречаю в книгах, туторах, что объявлять пространство имен в больших проектах нельзя(не рекомендуемо), но нигде не сказано почему... Подскажите вы хоть, пожалуйста. :)
C++ Мотивация Привет. Вот я С++ учю уже почти два (без 3 месяцев) года, начал с самого нуля, до этого не знал толком ничего. Решал в основном, убогие задачки, нормального проэкта не было. Знаком с стандартной... подробнее

Показать сообщение отдельно
BezDesu
0 / 0 / 0
Регистрация: 26.07.2013
Сообщений: 47
05.08.2013, 08:11
Цитата Сообщение от Trurlol Посмотреть сообщение
c - объект, Astro() - "директория" в которой лежат астрономические константы и G непосредственно сама константа. Пробовал через вложенные классы - ничего не вышло или допустил ошибку или делается совершенно по другому, не знаю.
Вложенные классы используются редко - для специфичных задач. А то что ты хочешь можно реализовать так:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
class AstroConstants {
public:
    double G() { return 74.8; }
    double F() { return 104.62; }
};
 
class Constants {
public:
    AstroConstants Astro() { AstroConstants astroCon; return astroCon; }
};
 
int main()
{   
    Constants c;
 
    double G = c.Astro().G(); // Обращение к константе такое, как ты и хотел.
    cout << G << endl;
    double F = c.Astro().F();
    cout << F << endl;
 
    return 0;
}
Но реализация тогда не изящна, из-за строки:
C++
1
AstroConstants Astro() { AstroConstants astroCon; return astroCon; }
По этому делаем так:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
class AstroConstants {
public:
    double G() { return 74.8; }
    double F() { return 104.62; }
};
 
class Constants {
public:
    AstroConstants astroCon; // Объект другого класса, содержащий константы.
};
 
int main()
{   
    Constants c;
 
    double G = c.astroCon.G(); // Обращение к константе теперь более адекватное.
    cout << G << endl;
    double F = c.astroCon.F();
    cout << F << endl;
 
    return 0;
}
Я сам не гуру С++, но уверен что вообще идеально твою задачу можно выполнить с помощью наследования классов. Народ ещё подключится и покажет как это сделать, за одно и сам посмотрю.
0
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru