С Новым годом! Форум программистов, компьютерный форум, киберфорум
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
I love myguitar
4 / 4 / 1
Регистрация: 23.10.2012
Сообщений: 233
#1

Обратится ко второму классу - C++

11.01.2014, 19:19. Просмотров 220. Ответов 6
Метки нет (Все метки)

Пытаюсь через вызов первого класса вывести info второго класса, но никак соответственно все разбиваю по файлам)
Cfirst.h
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
#ifndef CFIRST
#define CFIRST
 
class CFirst{
    CSecond* second; //создаем обьект на второй класс
public:
    CFirst(); //конструктор по умол
    CFirst(CSecond* Second); // конструктор с парам
    void setSecond(CSecond* Second); 
    CSecond* Second ();
};
first.cpp
[CPP]#include <iostream>
#include "CFirst.h"
#include "CSecond.h"
using namespace std;
 
    CFirst::CFirst(){}
    CFirst::CFirst(CSecond* Second){ // здесь подчеркив ::CFirst( пишет перегруженная функция член не найдена
        setSecond(Second);
    }
    void CFirst::setSecond(CSecond* Second){ // и все последующие функции подчеркивает
        second=Second;
    }
     CSecond* CFirst::Second(){
         return second;
     }
CSecond.h
#endif[/CPP]
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
#ifndef FIRST
#define FIRST
 
class CSecond{
    char soname[32];
public:
    CSecond();
    CSecond(char*);
    void PrintSoname(char*);
    char* getSoname();
    void info();
};
 
#endif
second.cpp
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#include <iostream>
#include "CSecond.h"
using namespace std;
 
    CSecond::CSecond(){}
    CSecond::CSecond(char* Soname){
        PrintSoname(Soname);
    }
    void CSecond::PrintSoname(char* Soname){
        cin>>Soname;
                strcpy(soname,Soname);
    }
    char* CSecond::getSoname(){
        return soname;
    }
    void CSecond::info(){
        cout<<soname<<endl;
    }
main.cpp
C++
1
2
3
4
5
6
7
8
9
#include <iostream>  
#include "CFirst.h"
#include "CSecond.h"
using namespace std;
 
void main(){
    CFirst ob();
    ob.info();
}
Добавлено через 1 минуту
Просто не могу понять и ни как не получается обратиться ко второму классу
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
11.01.2014, 19:19
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Обратится ко второму классу (C++):

Работа с классом (как вызвать или обратится к классу из основной программы?) - C++
помогите пожайлуста, подскажите как вызвать или обратится к классу из основной программы получается код должен создавать и заполнять трех...

Как обратится к звуковой карте? - C++
Решил все-таки создать тему.... Итак, у меня есть аудиофайл (к примеру wave) мне нужно сравнить его со звуком на out-путе звуковой карты,...

Как обратится к объекту CEdit? - C++
MFC class CMyMainWnd : public CFrameWnd { private: CMyButton* MyButton; CEdit* MyEdit; public:

Сортировка по второму слову - C++
Доброго времени суток! Есть следующее задание: &quot;В файле хранятся названия фирм. Каждая строка запись об отдельной фирме. ЗАО Рога...

программирование, зачет по второму курсу. - C++
Дело вот в чем....Не могу написать алгоритм...Если кто нить поможет, буду очень признателен. Двоичный файл содержит данные о...

Можно ли из базового класса обратится к виртуальному методу производного? - C++
Можно ли из базового класса обратится к виртуальному методу производного? И если да то как (на примере класса A). Polym.cpp #include...

6
alsav22
5428 / 4823 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
11.01.2014, 19:31 #2
C++
1
2
CFirst ob;
ob.second ->info();
Только делайте second public (или метод для доступа к private).
1
zss
Модератор
Эксперт С++
6587 / 6149 / 2025
Регистрация: 18.12.2011
Сообщений: 16,030
Завершенные тесты: 1
11.01.2014, 19:37 #3
Цитата Сообщение от alsav22 Посмотреть сообщение
Только делайте second public (или метод для доступа к private).
Еще класс Second должет быть объявлен до CFirst
C++
1
2
3
4
5
6
7
8
9
#include <iostream>  
using namespace std;
#include "CSecond.h"
#include "CFirst.h"
 
void main(){
    CFirst ob();
    ob.info();
}
1
I love myguitar
4 / 4 / 1
Регистрация: 23.10.2012
Сообщений: 233
11.01.2014, 19:50  [ТС] #4
Цитата Сообщение от alsav22 Посмотреть сообщение
Только делайте second public (или метод для доступа к private).
Ну а разве его уже нет? Делаю по похожему рабочему примеру примеру
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#include <iostream>
#include "CFirst.h"
#include "CSecond.h"
using namespace std;
 
    CFirst::CFirst(){}
    CFirst::CFirst(CSecond* Second){  // но почемуто ::CFirst( подчеркивает, пробовал сюда конструктор
копирования но он тут вроде не причем  
        setSecond(Second);
    }
    void CFirst::setSecond(CSecond* Second){
        second=Second;
    }
     CSecond* CFirst::Second(){
         return second;
     }
        void CFirst::info(){
            cout<<name<<endl;
        }
0
alsav22
5428 / 4823 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
11.01.2014, 19:56 #5
Цитата Сообщение от zss Посмотреть сообщение
Еще класс Second должет быть объявлен до CFirst
Или:
C++
1
2
3
4
5
6
7
8
9
10
11
12
#ifndef CFIRST
#define CFIRST
class CSecond;
 
class CFirst{
    CSecond* second; //создаем обьект на второй класс
public:
    CFirst(); //конструктор по умол
    CFirst(CSecond* Second); // конструктор с парам
    void setSecond(CSecond* Second); 
    CSecond* Second ();
};
Добавлено через 2 минуты
Цитата Сообщение от I love myguitar Посмотреть сообщение
Ну а разве его уже нет?
Раз есть - значит используйте (название нужно заметней давать: getSecond()):
C++
1
2
CFirst ob;
ob.Second()->info();
1
I love myguitar
4 / 4 / 1
Регистрация: 23.10.2012
Сообщений: 233
11.01.2014, 20:29  [ТС] #6
А в рабочем примере так никаких обьявлений до CFirst нет, разве недостаточно в cpp-щном файле подключения
C++
1
#include "CSecond.h"
0
alsav22
5428 / 4823 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
11.01.2014, 20:49 #7
Цитата Сообщение от I love myguitar Посмотреть сообщение
А в рабочем примере так никаких обьявлений до CFirst нет
А кто его видит (рабочий пример)? Может там и не нужно.
Цитата Сообщение от I love myguitar Посмотреть сообщение
разве недостаточно в cpp-щном файле подключения
Недостаточно.
0
11.01.2014, 20:49
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
11.01.2014, 20:49
Привет! Вот еще темы с ответами:

Как в цикле обратится к каждой цифре заданного числа? - C++
Например, есть число 1234567890!!!! Как в цикле обратится к каждой цифре етого числа???

Доброго времени суток друзья. Хочу обратится к вам за советом! - C++
С недавних пор стал проявлять интерес к языку программирования с++. Посоветуйте, с чего начать?(литература, среды разработки):friends: До...

Определить является ли первое число кратное второму - C++
Написать программу которая определяет, является ли первое число кратно второму. Не знаю как реализовать. Вот у нас есть 2 числа А и B...

Определить, является ли первое число кратным второму - C++
2. Прога , которая считывает два целых числа , определяет и печатает , является ли первое число кратным второму. Помогите чайнику,...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.