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

Задачка по C++! Укажите пожалуйста на ошибку! - C++

Восстановить пароль Регистрация
 
Anddreas
1 / 1 / 0
Регистрация: 16.01.2013
Сообщений: 66
09.04.2013, 15:22     Задачка по C++! Укажите пожалуйста на ошибку! #1
Набросал упрощенный вариантик программы.
Пытаюсь в конструкторе zveri присвоить значение переменной home из функии другого класс.
Где ошибка??? Что неправильно??????

D:\c++\my_test\main.cpp|38|error: prototype for 'zveri::zveri(dog)' does not match any in class 'zveri'|
D:\c++\my_test\main.cpp|30|error: candidates are: zveri::zveri(const zveri&)|
D:\c++\my_test\main.cpp|34|error: zveri::zveri(std::string)|
||=== Build finished: 3 errors, 0 warnings (0 minutes, 0 seconds) ===|
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
44
45
46
47
48
#include <iostream>
 
using namespace std;
 
class dog
{
    int age;
    string name;
 
public:
    dog(int, string);
    int getAge();
    string getName();
};
 
dog::dog(int age1, string name1)
{
    age = age1;
    name = name1;
}
int dog::getAge()
{
    return age;
}
string dog::getName()
{
    return name;
}
 
class zveri
{
    string home;
    public:
        zveri(string);
 
 
};
zveri::zveri(home)
{
    home = bobik.getName();
}
int main()
{
    dog bobik(5, "Bobik");
    cout << bobik.getName();
    cout << bobik.getAge();
    return 0;
}
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
09.04.2013, 15:22     Задачка по C++! Укажите пожалуйста на ошибку!
Посмотрите здесь:

C++ Укажите на ошибку или исправте!!!
C++ Укажите ошибку!
C++ укажите на ошибку в листинге
C++ Вылетает программа, укажите ошибку
Укажите на ошибку C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Ternsip
 Аватар для Ternsip
660 / 188 / 6
Регистрация: 10.05.2012
Сообщений: 595
09.04.2013, 15:28     Задачка по C++! Укажите пожалуйста на ошибку! #2
Сообщение было отмечено автором темы, экспертом или модератором как ответ
Anddreas, конструктор -- это функция, туда нужно аргументы так передавать: тип имя переменной, а вы передали home
prospector
 Аватар для prospector
7 / 7 / 0
Регистрация: 23.03.2013
Сообщений: 17
09.04.2013, 15:38     Задачка по C++! Укажите пожалуйста на ошибку! #3
Например так (и прототип переделать соответственно):

C++
1
2
3
4
zveri::zveri(string home, dog Name)
{
    home = Name.getName();
}
Иначе bobik'a вам не достать.
VEINHORN
542 / 91 / 22
Регистрация: 16.12.2011
Сообщений: 317
09.04.2013, 15:42     Задачка по C++! Укажите пожалуйста на ошибку! #4
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
44
45
46
47
48
49
50
51
#include <iostream>
#include<string>
using namespace std;
 
class dog
{
    int age;
    string name;
 
public:
    dog(int, string);
    int getAge();
    string getName();
};
 
dog::dog(int age1, string name1)
{
    age = age1;
    name = name1;
}
int dog::getAge()
{
    return age;
}
string dog::getName()
{
    return name;
}
 
class zveri
{
    string home;
    public:
        zveri(string);
 
 
};
zveri::zveri(string home) //tut neponyatniy tip bil peredavaemiy konstruktoru
{
    //k primeru esli bi vi tut sozdali object ili obrashalisj k peredannomu objectu (dog tuzik)
    dog bobik(2,"Tuzic");
    home = bobik.getName(); //neponyatno k chemu vi tut obrashalisj) smotrite vverh ^
}
int main()
{
    dog bobik(5, "Bobik");
    cout << bobik.getName() << endl; //tut vi zabili vklyuchitj file string v kotorom opredelena peregrughennaya funkciya dlya otobragheniya string
    cout << bobik.getAge() << endl;
    system("pause");
    return 0;
}
Вы в конструкторе zveri() обращаетесь неизвестно к чему)
Anddreas
1 / 1 / 0
Регистрация: 16.01.2013
Сообщений: 66
09.04.2013, 15:45  [ТС]     Задачка по C++! Укажите пожалуйста на ошибку! #5
но тип переменной home обьявлен же в самом классе zveri.

Изначально нужно было заменить переменные класса zveri на переменные.члены класса dog

Добавлено через 2 минуты
А что именно нужно в прототипе переделать?

Цитата Сообщение от prospector Посмотреть сообщение
Например так (и прототип переделать соответственно):

C++
1
2
3
4
zveri::zveri(string home, dog Name)
{
    home = Name.getName();
}
Иначе bobik'a вам не достать.
prospector
 Аватар для prospector
7 / 7 / 0
Регистрация: 23.03.2013
Сообщений: 17
09.04.2013, 15:46     Задачка по C++! Укажите пожалуйста на ошибку! #6
Что значит "заменить"? Может вам про открытое наследование почитать?
VEINHORN
542 / 91 / 22
Регистрация: 16.12.2011
Сообщений: 317
09.04.2013, 16:03     Задачка по C++! Укажите пожалуйста на ошибку! #7
Цитата Сообщение от prospector Посмотреть сообщение
Например так (и прототип переделать соответственно):

C++
1
2
3
4
zveri::zveri(string home, dog Name)
{
    home = Name.getName();
}
Иначе bobik'a вам не достать.
не обязательно home передовать,т.е :
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
class dog
{
    int age;
    string name;
 
public:
    dog(int, string);
    int getAge();
    string getName();
};
 
dog::dog(int age1, string name1)
{
    age = age1;
    name = name1;
}
int dog::getAge()
{
    return age;
}
string dog::getName()
{
    return name;
}
 
class zveri
{
      string home;
    public:
        zveri(dog);
 
 
};
zveri::zveri(dog Name)
{
    home = Name.getName();
}
Anddreas
1 / 1 / 0
Регистрация: 16.01.2013
Сообщений: 66
09.04.2013, 16:17  [ТС]     Задачка по C++! Укажите пожалуйста на ошибку! #8
MCKLAS,
попробовал как Вы советуете
home не видит значение Name.getName()
VEINHORN
542 / 91 / 22
Регистрация: 16.12.2011
Сообщений: 317
09.04.2013, 17:40     Задачка по C++! Укажите пожалуйста на ошибку! #9
Цитата Сообщение от Anddreas Посмотреть сообщение
MCKLAS,
попробовал как Вы советуете
home не видит значение Name.getName()
У вас работает такой код?
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
44
45
46
47
48
49
50
#include<iostream>
#include<string>
using namespace std;
 
class dog
{
    int age;
    string name;
 
public:
    dog(int, string);
    int getAge();
    string getName();
};
 
dog::dog(int age1, string name1)
{
    age = age1;
    name = name1;
}
int dog::getAge()
{
    return age;
}
string dog::getName()
{
    return name;
}
 
class zveri
{  
    public:
        string home;
        zveri(dog);
 
 
};
zveri::zveri(dog Name)
{
    home = Name.getName();
}
int main ()
{
    setlocale(LC_ALL,"");
    dog bobik(5,"Bobik");
    zveri sobaka(bobik);
    cout << sobaka.home << endl;
    system("pause");
    return 0;
}
Приведите пример кода там где у вас что-то не работает.
Anddreas
1 / 1 / 0
Регистрация: 16.01.2013
Сообщений: 66
09.04.2013, 18:41  [ТС]     Задачка по C++! Укажите пожалуйста на ошибку! #10
setlocale(LC_ALL,""); это мы еще не изучали
этот листинг у меня не работает
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
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
#include <iostream>
 
using namespace std;
 
class dog
{
    int age;
    string name;
 
public:
    dog(int, string);
    int getAge();
    string getName();
};
 
dog::dog(int age1, string name1)
{
    age = age1;
    name = name1;
}
int dog::getAge()
{
    return age;
}
string dog::getName()
{
    return name;
}
 
class zveri
{
      string home;
    public:
        zveri(dog);
        string getHome();
 
 
 
};
zveri::zveri(dog bobik)
{
    home = bobik.getName();
 
}
string zveri::getHome()
{
    return home;
}
int main()
{
 
    dog bobik(23,"Sharik");
 
    cout << home;
 
 
    return 0;
}
VEINHORN
542 / 91 / 22
Регистрация: 16.12.2011
Сообщений: 317
09.04.2013, 19:01     Задачка по C++! Укажите пожалуйста на ошибку! #11
Вы не правильно обращаетесь к полю home в main.У вас опять нигде не объявлен объект содержащий это поле.
C++
1
2
3
4
5
6
7
8
9
10
int main()
{
 
    dog bobik(23,"Sharik");
 //tut
    cout << home;
 //
 
    return 0;
}
Anddreas
1 / 1 / 0
Регистрация: 16.01.2013
Сообщений: 66
09.04.2013, 19:06  [ТС]     Задачка по C++! Укажите пожалуйста на ошибку! #12
MCKLAS,

эта переменная мне вообще то нужна в классе zveri,
я просто не могу понять получает ли она там то значение что я хочу, то есть имя собаки
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
09.04.2013, 19:11     Задачка по C++! Укажите пожалуйста на ошибку!
Еще ссылки по теме:

Укажите на ошибку C++
Укажите на ошибку C++
Калькулятор Z-1. Укажите на ошибку в программе к задаче C++

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

Или воспользуйтесь поиском по форуму:
VEINHORN
542 / 91 / 22
Регистрация: 16.12.2011
Сообщений: 317
09.04.2013, 19:11     Задачка по C++! Укажите пожалуйста на ошибку! #13
Чтобы она получила значение нужно передать объект dog в конструктор zveri.
C++
1
2
3
4
5
6
7
8
9
10
int main()
{
 
    dog bobik(23,"Sharik");
    zveri zverj(bobik);
    cout << zverj.getHome();
    system("pause");
 
    return 0;
}
Yandex
Объявления
09.04.2013, 19:11     Задачка по C++! Укажите пожалуйста на ошибку!
Ответ Создать тему
Опции темы

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