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

Класс при инициализации выдает бяку =( - C++

Восстановить пароль Регистрация
 
AnreyKazakov
Заблокирован
01.10.2012, 18:44     Класс при инициализации выдает бяку =( #1
Пытался сделать класс, чтобы в зависимости от того, сколькими переменными он инициализирован (от 0 до 3), срабатывал один из конструкторов. Конструкторы работают, как и подобает, но вот инициализирующие значения, они почему-то на выходе извращенные какие-то... (ввожу 1 2 3)
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 veron1{
    public:
    veron1():k1(1),k2(1),k3(1){}
    veron1(int):k2(10),k3(10){}
    veron1(int,int):k3(100){}
    veron1(int,int,int){}
    int k1;
    int k2;
    int k3;
    bool operator()(int a){
        k1=a;
        return 0;
        }
    bool operator()(int a,int b){
        k1=a;k2=b;
        return 0;
        }
    bool operator()(int a,int b, int c){
        k1=a;k2=b;k3=c;
        return 0;
        }       
    };
int main(){
    int x1,x2,x3;
    class veron1 v1;
    cout<<"Enter three values: ";
    cin>>x1>>x2>>x3;
    cout<<"v1 "<<v1.k1<<" "<<v1.k2<<" "<<v1.k3<<endl;
    cout<<"add x1"<<endl;
    v1(x1);
    class veron1 v2(x1);
    cout<<"v1 "<<v1.k1<<" "<<v1.k2<<" "<<v1.k3<<endl;
    cout<<"v2 "<<v2.k1<<" "<<v2.k2<<" "<<v2.k3<<endl;
    cout<<"add x1 and x2"<<endl;
    v1(x1,x2);
    class veron1 v3(x1,x2);
    cout<<"v1 "<<v1.k1<<" "<<v1.k2<<" "<<v1.k3<<endl;
    cout<<"v3 "<<v3.k1<<" "<<v3.k2<<" "<<v3.k3<<endl;   
    cout<<"add all: x1,x2,x3"<<endl;
    v1(x1,x2,x3);
    class veron1 v4(x1,x2,x3);
    cout<<"v1 "<<v1.k1<<" "<<v1.k2<<" "<<v1.k3<<endl;
    cout<<"v4 "<<v4.k1<<" "<<v4.k2<<" "<<v4.k3<<endl;
    cout<<"The End =)"<<endl;
    return 0;
    }
ввожу 1 2 3
на выходе по задумке должно быть
v1 1 1 1 //ok
add x1
v1 1 1 1 //ok
v2 1 10 10 //выводит v2 2293728 10 10
add x1 and x2
v1 1 2 1 //ok
v3 1 2 100 //выводит v3 4201884 2293508 100
add all: x1,x2,x3
v1 1 2 3 //ok
v4 1 2 3 //выводит v4 14 0 0
Подскажите в чем фокус? откуда такая бяка? такое чувство что я что-то напутал....
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
doctor_lecter
 Аватар для doctor_lecter
279 / 152 / 8
Регистрация: 22.09.2012
Сообщений: 283
01.10.2012, 18:48     Класс при инициализации выдает бяку =( #2
C++
1
2
3
veron1(int k1):k1(k1), k2(10),k3(10) {}
veron1(int k1,int k2):k1(k1), k2(k2), k3(100) {}
veron1(int k1,int k2,int k3): k1(k1), k2(k2), k3(k3) {}
У вас нигде не инициализировались поля, которые вы задаете.
Герц
523 / 340 / 4
Регистрация: 05.11.2010
Сообщений: 1,077
Записей в блоге: 1
01.10.2012, 18:48     Класс при инициализации выдает бяку =( #3
А чего ты хотел то, если ты не присваиваешь свои значения никуда?
AnreyKazakov
Заблокирован
01.10.2012, 18:57  [ТС]     Класс при инициализации выдает бяку =( #4
Цитата Сообщение от doctor_lecter Посмотреть сообщение
1
2
3 veron1(int k1):k1(k1), k2(10),k3(10) {}
veron1(int k1,int k2):k1(k1), k2(k2), k3(100) {}
veron1(int k1,int k2,int k3): k1(k1), k2(k2), k3(k3) {}
Теперь работает =) с двух учебников сразу читаю, путаю =(
Yandex
Объявления
01.10.2012, 18:57     Класс при инициализации выдает бяку =(
Ответ Создать тему
Опции темы

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