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

о связи классов и наследовании даты - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Динамическая память. Функции. Массивы .Объекты http://www.cyberforum.ru/cpp-beginners/thread641317.html
Всем привет. Возник следующий вопрос: 1.Когда в c++ из функции возвращается объект (экземпляр какого-то класса), то насколько мне известно, создается временный объект, для хранения результат и последующего его возврата. Так вот,является ли следующий код корректным? MyClass MyClass::func(){ MyClass temp; ... return temp; }
C++ Комплексные числа. Символическая форма записи Сейчас делаю реализацию класса. Что-то мне подсказывает, что есть ошибки. Тут больше вопрос по математике, в коей я практически ничего не понимаю. Кто в теме, просмотрите перегрузку арифметических действий, все ли там верно? class Ccomplex { private: float x; float y; public: // Элементарное приравнивание и возврат значений void SetX(float value) { http://www.cyberforum.ru/cpp-beginners/thread641316.html
C++ : error C2065: 'remainder' : undeclared identifier
Доброй ночи, вот изучаю Microsoft Visual Studio 2008 и в примере выскакивает данная ошибка(: error C2065: 'remainder' : undeclared identifier) , я так понимаю что в коде не хватает библиотеки только какой не пойму вот собственно говоря код: #include <stdafx.h> #include <iostream> using namespace std; int main() { int n, remaider; cout<<"Enter a number and pres Enter:"; cin>>n; ...
Массив: Все элементы массива, кратные трем, записать в одномерный массив. C++
Дан двумерный массив размером n x n? заполненный целыми числами. Все его элементы кратные трем, записать в одномерный массив.
C++ Ошибки в коде http://www.cyberforum.ru/cpp-beginners/thread641297.html
Изучаю ООП с++ по книге Р.Лафоре. Как было написано в книге ввел код: #include <iostream> USING NAMESPACE STD; INT MAIN() { COUT << "Ó ÊÀÆÄÎÉ ÝÏÎÕÈ ÑÂÎÉ ßÇÛÊ\N"; RETURN 0; } запустил через build и выдало такую ошибку:
C++ Замена файла [c++] void zam(LPCTSTR FILE,LPCTSTR LIFILE) { //Сюда надо вставить код который заменяет файл FILE на этот LIFILE //CopyFile не предлагать! } подробнее

Показать сообщение отдельно
Leeto
 Аватар для Leeto
7 / 7 / 0
Регистрация: 23.12.2011
Сообщений: 372
Записей в блоге: 1
24.08.2012, 14:24  [ТС]     о связи классов и наследовании даты
Цитата Сообщение от I.M. Посмотреть сообщение
Не очень понятна проблема. И поправьте main.cpp - вы не тот код туда скопировали.
Извиняюсь...
Ща поправлю и там на мейне объясну что я имел ввиду

Добавлено через 17 часов 51 минуту
//BaseClass.hpp
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
//BaseClass.hpp
 
 
 
#ifndef BaseClass_hpp
#define BaseClass_hpp
 
#include "Data.hpp"
#include <iostream> 
 
using namespace std; 
 
class BaseClass 
    {
 
    public :
 
        Data internal_object_Data; 
 
        BaseClass () 
            {
                internal_object_Data.a =  222222;
                internal_object_Data.b = 555555; 
            }; 
 
 
        BaseClass(Data& objd )
            {
                internal_object_Data = objd; 
            }
 
        void print (double a)
        {
            cout <<"\n print() from BaseClass:  " <<  a; 
        
        }
    } ; 
 
#endif



//Data.hpp
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
//Data.hpp
 
 
#ifndef Data_hpp
#define Data_hpp
 
struct Data 
{
 
double a; 
double b; 
 
};
 
#endif


//DerivedClass.hpp
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
//DerivedClass.hpp
#ifndef DerivedClass_hpp
#define DerivedClass_hpp
 
 
#include <iostream> 
 
#include"BaseClass.hpp"
 
using namespace std; 
 
class DerivedClass : public BaseClass
    {
 
    public :
    
        BaseClass* composition_obj_base; 
        
            DerivedClass () : BaseClass()
            {
                composition_obj_base = &BaseClass(); 
            }
 
 
 
        DerivedClass (BaseClass& Obj_BC) : BaseClass()
            {
                composition_obj_base = &Obj_BC; 
            }
 
 
      double  Calc ( )
            {
                
                return composition_obj_base->internal_object_Data.a *=  5; 
            }
 
      
    } ; 
 
#endif



// main.cpp
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
// main.cpp
 
 
#include <iostream>
 
#include "BaseClass.hpp"
#include "DerivedClass.hpp"
#include "Data.hpp"
 
 
using namespace std; 
 
int  main ()
 
{
 
    Data objData ;
        {
            objData.a = 5; 
            objData.b = 10; 
        }
 
    BaseClass   objbase1; 
    cout << "\n objbase1 a : " ; 
    objbase1.print(objbase1.internal_object_Data.a);
    BaseClass objbase(objData); 
 
    DerivedClass objdefault_const; 
 
    DerivedClass objdir(objbase); 
 
 
    cout << "\n objdefault_const a : " ; 
    objdefault_const.print(objdefault_const.Calc());
    cout << "\n" ; 
    cout << "\n objdir Calc : " ; 
    objdir.print( objdir.Calc()); 
 
 
 
cout << "\n\n\n" ; 
return 0 ; 
}



Обновил название переменных

Добавлено через 4 минуты
Цитата Сообщение от Jupiter Посмотреть сообщение
что значит передать? наследование должно соответствовать LSP короче говоря класс В может быть унаследован от класса А если B является А
Передать я имею ввиду конструктор :
сетим дату в базовый класс
C++
1
2
3
4
5
6
7
8
9
10
Data objData ;
        {
            objData.a = 5; 
            objData.b = 10; 
        }
 
    BaseClass   objbase1; 
    cout << "\n objbase1 a : " ; 
    objbase1.print(objbase1.internal_object_Data.a);
    BaseClass objbase(objData);
передаем эту дату в деривативный класс

C++
1
DerivedClass objdir(objbase);
использую композиционный объект

C++
1
2
3
4
 DerivedClass (BaseClass& Obj_BC) : BaseClass()
            {
                composition_obj_base = &Obj_BC; 
            }
Вопрос в чем как можно "передать" по другому ???
Т.е. для того чтобы "передать " обязательно создавать композиционный объект или можно без него обойтись... например используя только связь наследования ???
если да то как это сделать ???
 
Текущее время: 15:32. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru