Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 05.08.2015, 11:40   #1
Tyritti
Новичок
Джуниор
 
Регистрация: 05.08.2015
Сообщений: 1
По умолчанию Обращение к инициализированному классу C++

Как можно сделать так, чтобы можно было обращаться к уже объявленному и инициализированному в классе Class2 классу, чтобы в итоге функция main возвращала значение 0, а не -1

Код:
//Main.cpp
#include <iostream>
#include "Class1.h"
#include "Class2.h"
 
int main()
{
    Class2 loading;
    Class1* c1 = new Class1; /*Хотелось бы избавиться от этой строки, чтобы не приходилось создавать новый класс, а ссылаться на уже инициализированный в классе Class2*/
    c1->Update();
    if (c1->i == 11) return 0; else return -1;
};
 
//Class1.h
#ifndef _CLASS1_H
#define _CLASS1_H
class Class1
{
public:
    int i = 0;
    void Load();
    void Update();
};
#endif // _CLASS1_H
 
//Class1.cpp
#include "Class1.h"
void Class1::Load()
{
    i = 10;
};
void Class1::Update()
{
    i++;
};
 
//Class2.h
#ifndef _CLASS2_H
#define _CLASS2_H
class Class1;
class Class2
{
public:
    Class2();
};
#endif // _CLASS2_H
 
//Class2.cpp
#include "Class1.h"
#include "Class2.h"
Class1* c1 = new Class1;
Class2::Class2()
{
    c1->Load();
};
Tyritti вне форума Ответить с цитированием
Старый 05.08.2015, 12:38   #2
crazy horse
ios developer
Старожил
 
Аватар для crazy horse
 
Регистрация: 16.11.2007
Сообщений: 2,885
По умолчанию

http://cppstudio.com/post/439/ почитайте тут.
Делайте что хотите, но чтобы через полчаса в лесу было светло, сухо и медведь!

Последний раз редактировалось crazy horse; 05.08.2015 в 12:44.
crazy horse вне форума Ответить с цитированием
Старый 05.08.2015, 16:00   #3
Krasiosoft
Форумчанин
 
Аватар для Krasiosoft
 
Регистрация: 01.06.2015
Сообщений: 497
По умолчанию

Код:
class Class1
{
public:
    int i;

    Class1(){
        i=0;
    }
    void Load(){
        i=10;
    }
    void Update(){
        i++;
    }
};


class Class2{
public:
    Class1 c1;
};


int main(){

    Class2 loading;
    loading.c1.Update();
    if (loading.c1.i == 11) return 0;
    else return -1;

    return 0;
}
Что-то вроде этого нужно?
Если помог, буду очень благодарен за Ваш отзыв (весы в левой нижней части сообщения).
Krasiosoft вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Обращение как к функции или обращение после опрд действия Gefo JavaScript, Ajax 5 04.02.2013 08:55
Обращение к базовому классу ACE Valery Общие вопросы C/C++ 17 02.01.2013 18:04
Как передать обьетк классу??? KoctR Общие вопросы C/C++ 11 25.03.2012 17:22
Параметр классу? Непонятный с++. jojahti Общие вопросы C/C++ 4 16.10.2009 08:55
Обратиться к классу (Delphi) Air Помощь студентам 16 17.07.2008 19:51