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

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

Войти
Регистрация
Восстановить пароль
 
Artishok
ЧакЭ одобряЭ
277 / 276 / 32
Регистрация: 27.12.2009
Сообщений: 1,767
#1

Класс в модуле - C++

12.02.2011, 21:44. Просмотров 492. Ответов 7
Метки нет (Все метки)

как записать класс в модуль?(ну чтобы его из модуля вызывать)
например такой
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
#include <iostream>
 
class Myclass
{
    private:
      int elem1,elem2,elem3;
    public:
     Myclass(int x,int y,int z)
     {
        elem1=x;
        elem2=y;
        elem3=z;
     }
     int res1()
     {
        return elem1*elem2;
     }
     void Final()
     {
        cout<<"Result"<<" "<<res1()*elem3<<endl;
     }
};
    
int main()
{
  Myclass d(2,5,6);
  d.Final();
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
12.02.2011, 21:44
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Класс в модуле (C++):

Есть класс A и класс B, класс B вложен в класс A и вложен в него, как классу B получить доступ к переменным класса A просто по имени? - C++
На самом деле ничё фантастического я не прошу, ведь: template &lt;class T&gt; class matrix { friend class diagonal; ...

Класс таблиц баз данных и класс записей в таблице(реляционная таблица). Предусмотреть класс связей между таблицами - C++
Здравствуйте! Никак не могу продумать структуру этой программы. Проходим наследование, но я все равно не знаю, как его здесь применить. Как...

Отдельно класс данных, класс формул и главный класс - C++
Здравствуйте! У меня есть три вопроса. Первый вопрос. Скажите пожалуйста! Правильный ли это подход к созданию приложений :...

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

feof(file) в модуле - C++
Функция main вызывает другую функцию, расположенную в отдельном модуле. Когда я пытаюсь в этой функции проверить на конец файла...

Переименование типов в подключаемом модуле - C++
Написал свой модуль для работы со связными списками, в которых хранится информация типа int, следовательно, в каждом объекте располагается...

7
silent_1991
Эксперт С++
4984 / 3041 / 149
Регистрация: 11.11.2009
Сообщений: 7,027
Завершенные тесты: 1
12.02.2011, 22:14 #2
В файле Myclass.h объявляете класс, в файле Myclass.cpp подключаете файл Myclass.h и описываете класс, в файле main.cpp подключаете Myclass.h и используете класс. Имена файлов, естественно, не принципиальны.
1
Artishok
ЧакЭ одобряЭ
277 / 276 / 32
Регистрация: 27.12.2009
Сообщений: 1,767
12.02.2011, 22:30  [ТС] #3
сделал так.

myclass.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
#include "myclass.h"
#include <iostream>
 
class Myclass
{
    private:
      int elem1,elem2,elem3;
    public:
     Myclass(int x,int y,int z)
     {
        elem1=x;
        elem2=y;
        elem3=z;
     }
     int res1()
     {
        return elem1*elem2;
     }
     void Final()
     {
        cout<<"Result"<<" "<<res1()*elem3<<endl;
     }
};
myclass.h
C++
1
class Myclass;
proga.cpp
C++
1
2
3
4
5
6
7
8
#include <iostream>
#include "myclass.h"
 
int main()
{
    Myclass d(3,4,5);
    d.Final();
}
Но выдает ошибку
variable `class Myclass d' has initializer but incomplete type
0
asics
Freelance
Эксперт С++
2847 / 1782 / 144
Регистрация: 09.09.2010
Сообщений: 3,841
12.02.2011, 22:48 #4
Скорее всего надо так:
myclass.h
C++
1
2
3
4
5
6
7
8
9
10
11
#pragma once
 
class Myclass
{
    private:
      int elem1,elem2,elem3;
    public:
     Myclass(int x,int y,int z);
     int res1();
     void Final();
};
myclass.cpp
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#include <iostream>
#include "myclass.h"
 
using namespace std;
 
Mayclass::Myclass(int x,int y,int z)
{
        elem1=x;
        elem2=y;
        elem3=z;
}
 
int Myclass::res1()
{
        return elem1*elem2;
}
 
void Mayclas::Final()
{
        cout<<"Result"<<" "<<res1()*elem3<<endl;
}
main.cpp
C++
1
2
3
4
5
6
7
8
#include <iostream>
#include "myclass.h"
 
int main()
{
        Myclass d(3,4,5);
        d.Final();
}
1
Artishok
ЧакЭ одобряЭ
277 / 276 / 32
Регистрация: 27.12.2009
Сообщений: 1,767
12.02.2011, 23:22  [ТС] #5
теперь выдает 'undefined reference to Myclass::Myclass(int,int,int)'
0
asics
Freelance
Эксперт С++
2847 / 1782 / 144
Регистрация: 09.09.2010
Сообщений: 3,841
12.02.2011, 23:41 #6
Artishok, У меня все норм
0
Миниатюры
Класс в модуле  
asics
Freelance
Эксперт С++
2847 / 1782 / 144
Регистрация: 09.09.2010
Сообщений: 3,841
12.02.2011, 23:42 #7
C++
1
2
3
4
5
6
7
8
9
10
11
12
//myclass.h
#pragma once
 
class Myclass
{
private:
    int elem1,elem2,elem3;
public:
    Myclass(int x,int y,int z);
    int res1();
    void Final();
};
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
//myclass.cpp
#include <iostream>
#include "myclass.h"
 
using namespace std;
 
Myclass::Myclass(int x,int y,int z)
{
    elem1=x;
    elem2=y;
    elem3=z;
}
 
int Myclass::res1()
{
    return elem1*elem2;
}
 
void Myclass::Final()
{
    cout<<"Result"<<" "<<res1()*elem3<<endl;
}
C++
1
2
3
4
5
6
7
8
9
10
//main.cpp
#include <iostream>
#include "myclass.h"
 
int main(){
    Myclass d(3,4,5);
    d.Final();
    system("pause");
    return 0;
}
0
outoftime
║XLR8║
510 / 432 / 33
Регистрация: 25.07.2009
Сообщений: 2,295
13.02.2011, 11:32 #8
Artishok, у вас компилятор не поддерживает раздельную компиляцию, т.е. нельзя разделять обьявления методов класса и их реализацию по разным файлам.
1
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
13.02.2011, 11:32
Привет! Вот еще темы с ответами:

Как создать переменную в модуле - C++
Хотел создать глобальную переменную в отдельном модуле, например так (файл stdafx.h):int a=10; Всё нормально скомпилировалось, но когда в...

Где в модуле объявить динамический массив? - C++
Здравствуйте. Объясните пожалуйста, как объявляется массив в классе. Допустим мне нужен массив бесконечной геометрической прогрессии....

Неправильно идёт подсчёт в модуле математики - C++
Подскажите пожалуйста... В программе у меня, когда я ввожу например число 10, у меня в синусе выводится (-0.544), однако, на самом деле,...

Как реализовать обнуляющий конструктор в модуле класса? - C++
Нужно реализовать класс в виде модуля. Класс Houses, содержит данные о домах, расположенных на одной улице. Кол-во жителей(tenants) и...


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

Или воспользуйтесь поиском по форуму:
8
Yandex
Объявления
13.02.2011, 11:32
Ответ Создать тему
Опции темы

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