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

ООП ВОПРОС - C++

Восстановить пароль Регистрация
 
serega721
4 / 4 / 0
Регистрация: 04.10.2009
Сообщений: 168
18.12.2010, 23:01     ООП ВОПРОС #1
Плиз обьясните почему нельзя сделать так (ошибка):
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
#include<iostream>
using namespace std;
class one
{
public:
    int a;
}
class two
{
public:
    int b;
}
void s(one c,two d)
{
    cout<<c.a+d.b;
}
void main()
{
    one c;
    two d;
    cin>>c.a;
    cin>>d.b;
    s(c.a,d.b);
}
Добавлено через 2 минуты
Почему нельзя передать целые значения в эту функцию? И ли как можно это изменить только при этом параметры должны иметь такой тип данных?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
18.12.2010, 23:01     ООП ВОПРОС
Посмотрите здесь:

C++ Вопрос по массивав, "институтский" вопрос.
C++ ООП
C++ вопрос по ооп
C++ ООП - вопрос про деструктор
Вопрос по ООП C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
HIMen
 Аватар для HIMen
4105 / 1354 / 39
Регистрация: 12.04.2009
Сообщений: 2,346
18.12.2010, 23:02     ООП ВОПРОС #2
Потому что s принимает в параметры типы one и two, а ты пытаешься передать int

Добавлено через 31 секунду
s(c,d);
serega721
4 / 4 / 0
Регистрация: 04.10.2009
Сообщений: 168
18.12.2010, 23:09  [ТС]     ООП ВОПРОС #3
Но можно как-то передать туда с,d при этом не изменяя типы оne и two и функция при этом должна содержать только два передавемых аргумента.

Добавлено через 2 минуты
Ведь тогда смысл передавать в функцию пременные класса если при этом они ничего содержать в себе не могут(ни целолго типа,ни вещественного....)?
+c+
112 / 22 / 3
Регистрация: 20.11.2010
Сообщений: 1,294
18.12.2010, 23:15     ООП ВОПРОС #4
ОП ответ:
добавь конструкторы one(){a=0;} и two(){b=0;} в соответствующие классы

И класс надо завершать ; тоесть
class
{
};
Правда не знаю, может на твоём компиляторе не надо, кароче ты понял!
serega721
4 / 4 / 0
Регистрация: 04.10.2009
Сообщений: 168
18.12.2010, 23:23  [ТС]     ООП ВОПРОС #5
Огромное спасибо за:one(){a=0;} и two(){b=0;}
А то я бы долго еще мучался.
deadlock
 Аватар для deadlock
372 / 351 / 7
Регистрация: 14.12.2010
Сообщений: 1,265
18.12.2010, 23:25     ООП ВОПРОС #6
такого рода мучения исчезают при чтении литературы
rangerx
19.12.2010, 00:21     ООП ВОПРОС
  #7

Не по теме:

Цитата Сообщение от serega721 Посмотреть сообщение
C++
1
void s(one c,two d)
Не следует передавать объект по значению, если в этом нет необходимости
C++
1
void s(const one& c, const two& d)

Yandex
Объявления
19.12.2010, 00:21     ООП ВОПРОС
Ответ Создать тему
Опции темы

Текущее время: 00:59. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru