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

Как получить private переменную класса, функцей членом другого класса - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Вызов логической функции http://www.cyberforum.ru/cpp-beginners/thread741349.html
Есть функция check которая проверяет баланс скобок в строке. Проблема в том, что при вызове её из main`а программа крашится =( В чем может быть проблема? #include <iostream> using namespace...
C++ написать игру "кости" написать игру "кости" у компьютера и пользователя по 100 игровой валюты ставку делает компьютер потом пользователь http://www.cyberforum.ru/cpp-beginners/thread741313.html
C++ Определение времени года за порядковым номером месяца (проверить)
Составить программу определения времени года за порядковым номером месяца #include <iostream.h> #include <conio.h> #include <math.h> void main () { int y; cout<<"uvedit nomer micyatsya vid...
Структуры C++
Создайте структуру Point для хранения координат точки на плоскости. Напишите функции: 1. CinPoint, которая запрашивает с консоли координаты точки и возвращает их в виде переменной типа Point....
C++ Моя реализация функции перевода string в int http://www.cyberforum.ru/cpp-beginners/thread741294.html
#include <iostream> #include <string> using namespace std; int str_to_int(string a); int main() { string s = "-4789"; cout << str_to_int(s);
C++ Структура «Железнодорожный состав» Создайте консольное приложение для решения задачи С++ Структура «Железнодорожный состав» с полями "номер поезда", "количество вагонов", "модель вагонов" (в одном составе используются вагоны одной... подробнее

Показать сообщение отдельно
IGPIGP
Комп_Оратор)
Эксперт по математике/физике
6486 / 3130 / 307
Регистрация: 04.12.2011
Сообщений: 8,644
Записей в блоге: 5
23.12.2012, 03:18
Цитата Сообщение от yekka Посмотреть сообщение
C++
1
#define private public
А мне понравилось. Продолжу:
C++
1
#define cin cout
Это кратко и гениально. А вот длинная шутка про змею.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
#include <iostream>
using namespace std;
//два класса связаны указателями друг на друга
//связанные классы объявим в одном файле (это может быть отдельный хэдер)
class snake;//предварительное объявление для указателя snake* sn
class field
{
private:
    int FIELD_START;
    int FIELD_WIDTH_X;
    int FIELD_WIDTH_Y;
    snake* sn;
public:
field(int _FIELD_START=0, int _FIELD_WIDTH_X=0, int _FIELD_WIDTH_Y=0);
int getSt();
int get_X();
int get_Y();
void setSN(snake* _sn);
snake* getSN();
};
field::field(int _FIELD_START, int _FIELD_WIDTH_X, int _FIELD_WIDTH_Y){
FIELD_START=_FIELD_START;
FIELD_WIDTH_X=_FIELD_WIDTH_X;
FIELD_WIDTH_Y=_FIELD_WIDTH_Y;
}//этот конструктор не инициализирует sn! Потому, что её в коде ещё не будет когда он вызовется
int field::getSt(){return FIELD_START;}
int field::get_X(){return FIELD_WIDTH_X;}
int field::get_Y(){return FIELD_WIDTH_Y;}
snake* field::getSN(){return sn;}
void field::setSN(snake* _sn){sn=_sn;}//когда змея появится её можно будет отловить и закончить инициализацию
//до этого к полю sn обращаться не стоит
 
class snake
{
private:
field* ptrFld;
int numb;
public:
snake(field* _ptrFld, int _numb);
int get();
void SnakeRun();
};
snake::snake(field* _ptrFld, int _numb){
ptrFld=_ptrFld;
numb=_numb;
}
int snake::get(){return numb;}
void snake:: SnakeRun(){
cout<<"FIELD_START =\t"<<ptrFld->getSt()<<endl;
cout<<"FIELD_WIDTH_X =\t"<<ptrFld->get_X()<<endl;
cout<<"FIELD_WIDTH_Y =\t"<<ptrFld->get_Y()<<endl;
}
 
int main(){
//setlocale(0, "rus");
field* varPosition= new field(1,2,3);
snake concretnayaZmeya(varPosition,1);//полностью инициализированная змея)
varPosition->setSN(&concretnayaZmeya);//поймали змею!
concretnayaZmeya.SnakeRun();
cout<<varPosition->getSN()->get();//обратились косвенно через позицию к конкретной змее
cout <<endl;
system ("pause");
return 0;
}
0
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru