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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 28.04.2013, 18:32   #1
Infini
 
Регистрация: 02.03.2013
Сообщений: 8
По умолчанию Наследование С++

Каким образом можно из базового класса унаследовать данные для производного класса.Знаю,что через конструктор копирования,но как их связать между собой?
Infini вне форума Ответить с цитированием
Старый 28.04.2013, 18:51   #2
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

при наследовании дочерний класс итак наследует это все.
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 28.04.2013, 19:01   #3
Infini
 
Регистрация: 02.03.2013
Сообщений: 8
По умолчанию

Цитата:
Сообщение от Пепел Феникса Посмотреть сообщение
при наследовании дочерний класс итак наследует это все.
я ввожу данные с консоли в массив базового класса (там методы проверки и т.д) при создании дочернего класса я хочу,чтобы уже не вызывался конструктор по умолчанию а уже сразу брались данные которые я ввела и уже могла работать с ними в дочернем классе. Не могу понять с помощью чего они взаимодействуют между собой?
Infini вне форума Ответить с цитированием
Старый 28.04.2013, 21:50   #4
kineziz
Форумчанин
 
Регистрация: 22.12.2011
Сообщений: 378
По умолчанию

Если я правильно понял, то вот:

Base.h
Код:
#pragma once
#define _OUT_

class Base
{
protected:
	int x1;
	int x2;
public:
	virtual void Set(int _x1,int _x2);
	virtual void Get(int& _x1,int& _x2);
};
void Base::Set(int _x1,int _x2)
{
	x1 = _x1;
	x2 = _x2;
}
void Base::Get(int& _OUT_ _x1,int& _OUT_ _x2)
{
	_x1 = x1;
	_x2 = x2;
}

Child.h
Код:
#pragma once

class Child : public Base
{
public:
	Child() {}
	Child(Base& refBase);
};
Child::Child(Base& refBase)
{
	refBase.Get(x1,x2);
}
main.cpp
Код:
#include <iostream>
#include "Base.h"
#include "Child.h"

int main()
{
	Base base;
	base.Set(10,20);
	Child child(base); // Копирование с помощью конструктора
	int x1;
	int x2;
	child.Get(x1,x2);
	std::cout << x1 << ' ' << x2 << std::endl;
	std::cin.get();
	return 0;
}
Большинство хороших программистов делают свою работу не потому, что ожидают оплаты или признания, а потому что получают удовольствие от программирования.

Последний раз редактировалось kineziz; 28.04.2013 в 21:54.
kineziz вне форума Ответить с цитированием
Старый 28.04.2013, 22:19   #5
Infini
 
Регистрация: 02.03.2013
Сообщений: 8
По умолчанию

Цитата:
Сообщение от kineziz Посмотреть сообщение
Если я правильно понял, то вот:

Base.h
Код:
#pragma once
#define _OUT_

class Base
{
protected:
	int x1;
	int x2;
public:
	virtual void Set(int _x1,int _x2);
	virtual void Get(int& _x1,int& _x2);
};
void Base::Set(int _x1,int _x2)
{
	x1 = _x1;
	x2 = _x2;
}
void Base::Get(int& _OUT_ _x1,int& _OUT_ _x2)
{
	_x1 = x1;
	_x2 = x2;
}

Child.h
Код:
#pragma once

class Child : public Base
{
public:
	Child() {}
	Child(Base& refBase);
};
Child::Child(Base& refBase)
{
	refBase.Get(x1,x2);
}
main.cpp
Код:
#include <iostream>
#include "Base.h"
#include "Child.h"

int main()
{
	Base base;
	base.Set(10,20);
	Child child(base); // Копирование с помощью конструктора
	int x1;
	int x2;
	child.Get(x1,x2);
	std::cout << x1 << ' ' << x2 << std::endl;
	std::cin.get();
	return 0;
}
Спасибо, я разобралась.
Infini вне форума Ответить с цитированием
Ответ


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

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Наследование в C++ Etete Помощь студентам 4 31.05.2012 00:05
Наследование. ISV-777 Общие вопросы по Java, Java SE, Kotlin 1 05.12.2011 22:31
Наследование AJlxuMuk Общие вопросы C/C++ 8 06.07.2010 16:08
Наследование notHaker Общие вопросы Delphi 5 24.05.2010 18:55