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

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

Войти
Регистрация
Восстановить пароль
 
Anddreas
1 / 1 / 0
Регистрация: 16.01.2013
Сообщений: 68
#1

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

09.04.2013, 15:22. Просмотров 468. Ответов 12
Метки нет (Все метки)

Набросал упрощенный вариантик программы.
Пытаюсь в конструкторе 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;
}
0
Лучшие ответы (1)
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
09.04.2013, 15:22
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Задачка по C++! Укажите пожалуйста на ошибку! (C++):

Укажите пожалуйста ошибку(и) - C++
#include &lt;iostream&gt; using namespace std; struct box { char maker; float height; float width; float length; float...

Укажите ошибку пожалуйста - C++
№ 3 вариант 8 #include &lt;iostream&gt; #include &lt;math.h&gt; using namespace std; int main() { const float Eps=1E-4; int...

Укажите на ошибку - C++
Проблема с enum. Пишет что, нужно что-то перед enum. Поясните пожалуйста #include &lt;iostream&gt; using namespace std; int main() ...

Укажите ошибку! - C++
В строке удвоить все символы ‘&amp;’. Под вставкой символа n в строку после к-го элемента понимается смещение всех элементов, начиная с...

Укажите на ошибку - C++
Подскажите ошибку пожалуйста #include &lt;iostream&gt; #include &lt;math.h&gt; using namespace std; void main() ...

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

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

C++
1
2
3
4
zveri::zveri(string home, dog Name)
{
    home = Name.getName();
}
Иначе bobik'a вам не достать.
0
VEINHORN
543 / 92 / 22
Регистрация: 16.12.2011
Сообщений: 317
09.04.2013, 15:42 #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() обращаетесь неизвестно к чему)
0
Anddreas
1 / 1 / 0
Регистрация: 16.01.2013
Сообщений: 68
09.04.2013, 15:45  [ТС] #5
но тип переменной home обьявлен же в самом классе zveri.

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

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

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

C++
1
2
3
4
zveri::zveri(string home, dog Name)
{
    home = Name.getName();
}
Иначе bobik'a вам не достать.
0
prospector
7 / 7 / 0
Регистрация: 23.03.2013
Сообщений: 17
09.04.2013, 15:46 #6
Что значит "заменить"? Может вам про открытое наследование почитать?
0
VEINHORN
543 / 92 / 22
Регистрация: 16.12.2011
Сообщений: 317
09.04.2013, 16:03 #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();
}
0
Anddreas
1 / 1 / 0
Регистрация: 16.01.2013
Сообщений: 68
09.04.2013, 16:17  [ТС] #8
MCKLAS,
попробовал как Вы советуете
home не видит значение Name.getName()
0
VEINHORN
543 / 92 / 22
Регистрация: 16.12.2011
Сообщений: 317
09.04.2013, 17:40 #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;
}
Приведите пример кода там где у вас что-то не работает.
0
Anddreas
1 / 1 / 0
Регистрация: 16.01.2013
Сообщений: 68
09.04.2013, 18:41  [ТС] #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;
}
0
VEINHORN
543 / 92 / 22
Регистрация: 16.12.2011
Сообщений: 317
09.04.2013, 19:01 #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;
}
0
Anddreas
1 / 1 / 0
Регистрация: 16.01.2013
Сообщений: 68
09.04.2013, 19:06  [ТС] #12
MCKLAS,

эта переменная мне вообще то нужна в классе zveri,
я просто не могу понять получает ли она там то значение что я хочу, то есть имя собаки
0
VEINHORN
543 / 92 / 22
Регистрация: 16.12.2011
Сообщений: 317
09.04.2013, 19:11 #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;
}
0
09.04.2013, 19:11
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
09.04.2013, 19:11
Привет! Вот еще темы с ответами:

укажите на ошибку в листинге - C++
#include &quot;stdafx.h&quot; #include &lt;iostream&gt; #include &lt;iomanip&gt; using namespace System; void main( ) { cout &lt;&lt; &quot;I love&quot;; ...

Вылетает программа, укажите ошибку - C++
Программа вылетает. Помогите пожалуйста. Условие программы: В программе используется класс good_time и перегрузка оператора...

Укажите на ошибку или исправте!!! - C++
Здраствуйте!! написал консольную программу которая захватывает написанную строку, потом проверяет её на наличие Больших и маленьких букв!!!...

Помогите пожалуйста, укажите что неверно? - C++
#include &quot;stdafx.h&quot; #include &lt;iostream&gt; #include &lt;string&gt; using namespace std; int main() { string chislo,ch0, ch1, ch2,...


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

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

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