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

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

Войти
Регистрация
Восстановить пароль
 
Krist_ALL
9 / 9 / 0
Регистрация: 01.02.2010
Сообщений: 317
#1

Вопрос про конструктор - C++

31.07.2010, 15:09. Просмотров 442. Ответов 6
Метки нет (Все метки)

цитата исходного кода из книги:

C++
1
2
3
4
5
6
7
8
class stock{
 
...
public: stock(); //Типа объявление конструктора по умолчанию чтоли...
stock(int a,int b); //вот настоящий пользовательский конструктор
 
 
};
зачем в коде stock(); когда ниже идет нормальный прототип конструктора.?

Добавлено через 12 минут
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
#include <iostream>
 
class oop {
private: int a;
         int b;
         
public:  
         oop();
         oop(int r,int e);
         void pa();
 
};
 
 
oop::oop() 
{
a = r;
b = e;
}
 
 
oop::pa() 
{
    std::cout<<a;
 
}
 
 
 
 
int main() {
 
oop slava(3,3);
slava.pa();
 
 
}
error C2511: 'oop::oop' : overloaded member function 'void (void)' not found in 'oop'
error C2556: 'int __thiscall oop:a(void)' : overloaded function differs only by return type from 'void __thiscall oop:a(void)'

C:\Program Files\Microsoft Visual Studio\MyProjects\oop4\1.cpp(43) : error C2264: 'pa' : error in function definition or declaration; function not called


что за? хелп. я ток недавно начла осваивать ооп...
0
Лучшие ответы (1)
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
31.07.2010, 15:09
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Вопрос про конструктор (C++):

Вопрос про конструктор - C++
Обязательно ли делать конструктор по умолчанию для класса, экземпляр которого входит в другой класс? Например так: class Class2 ...

Вопрос про конструктор и инициализвцию - C++
class test { int a; char name; string name2; public: test(int a,char* name, ....) : a(a), .....{} }; если стринг как...

Вопрос про конструктор класса по умолчанию - C++
http://s2.ipicture.ru/uploads/20111029/A7AtbNYV.jpg Пункт первый не могу немного понять.Т.е получается,что всегда лучше создавать самому...

Конструктор копирования(быстрый вопрос) - C++
Вроде бы все просто и логично, но в итоге выполнения B не копируется в A :C why? #include &lt;iostream&gt; using namespace std; class...

Инициализация массива через конструктор. Вопрос. - C++
Всем привет. Есть скудная вытяжка из методички: &quot;Массив объектов В случае, когда возникает необходимость иметь несколько объектов...

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

6
M128K145
Эксперт С++
8289 / 3509 / 143
Регистрация: 03.07.2009
Сообщений: 10,706
31.07.2010, 15:25 #2
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
#include <iostream>
 
class oop {
private: 
    int a;
    int b;    
public:  
    oop();
    oop(int r,int e);
    void pa();
};
 
oop::oop() 
{
    a = r; // а что такое r?
    b = e; // что такое e? 
    // вы не объявили эти переменные, не передали их параметром, а используете
}
 
void oop::pa() 
// Кто будет указывать тип возвращаемого значения? Страуструп?
{
    std::cout<<a;
}
 
int main() 
{
    oop slava(3,3);
    slava.pa();
}


Цитата Сообщение от Krist_ALL Посмотреть сообщение
цитата исходного кода из книги:
C++
1
2
3
4
5
class stock{
...
public: stock(); //Типа объявление конструктора по умолчанию чтоли...
stock(int a,int b); //вот настоящий пользовательский конструктор
};
зачем в коде stock(); когда ниже идет нормальный прототип конструктора.?
Если вам не нужен конструктор без параметров - можете его не писать
1
Krist_ALL
9 / 9 / 0
Регистрация: 01.02.2010
Сообщений: 317
31.07.2010, 15:33  [ТС] #3
Спасибо! все получилось. я понял что может быть несколько конструкторов с разными параметрами (колво) как перегрузка конструктора получается.

а как ты узнал что страуструп? stock?
паралельно сморю ооп в пхп. есь различия и большие..
1
M128K145
Эксперт С++
8289 / 3509 / 143
Регистрация: 03.07.2009
Сообщений: 10,706
31.07.2010, 15:35 #4
Лучший ответ Сообщение было отмечено автором темы, экспертом или модератором как ответ
Цитата Сообщение от Krist_ALL Посмотреть сообщение
а как ты узнал что страуструп? stock?
Видимо я слишком стар... Когда писал про Страуструпа, то я думал про фразу
А кто это будет за тебя делать? Пушкин?
7
N-t0z
0 / 0 / 0
Регистрация: 19.11.2009
Сообщений: 16
13.12.2010, 21:12 #5
Что-то я сильно туплю. Вижу, что проблема схожая, но предидущего объяснения не понял. Повторите пожалуйсто.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#include <iostream>
using namespace std;
class Uravn {
public:
Uravn();
int a,b,c;
void vvod(void);
void discr(void);
void nalich(void);
void znach(void);
};
 
void Uravn:: vvod(void)
{
  cout<<("Введите параметр а")<<endl;
}
int main()
{
    Uravn vvod();
system("pause");
}
Программа запускается, но на экран ничего не выводит.

Ошибок тонна:
"oop_zad1.exe": Загружено: "C:\Users\ион\Documents\Visual Studio 2010\Projects\oop_zad1\Debug\oop_zad1.exe", Символы загружены.
"oop_zad1.exe": Загружено: "C:\Windows\System32\ntdll.dll", Невозможно найти или открыть файл PDB
"oop_zad1.exe": Загружено: "C:\Windows\System32\kernel32.dll", Невозможно найти или открыть файл PDB
"oop_zad1.exe": Загружено: "C:\Windows\System32\msvcp100d.dll", Символы загружены.
"oop_zad1.exe": Загружено: "C:\Windows\System32\msvcr100d.dll", Символы загружены.
"oop_zad1.exe": Загружено: "C:\Program Files\CheckPoint\ZAForceField\Plugins\ISWSHEX.dll", Невозможно найти или открыть файл PDB
"oop_zad1.exe": Загружено: "C:\Windows\winsxs\x86_microsoft.vc80.crt_1fc8b3b9a1e18e3b_8.0.50727.4053_none_d08d7da0442a985d\msvcr80.dll", Невозможно найти или открыть файл PDB
"oop_zad1.exe": Загружено: "C:\Windows\System32\msvcrt.dll", Невозможно найти или открыть файл PDB
"oop_zad1.exe": Загружено: "C:\Windows\System32\user32.dll", Невозможно найти или открыть файл PDB
"oop_zad1.exe": Загружено: "C:\Windows\System32\gdi32.dll", Невозможно найти или открыть файл PDB
"oop_zad1.exe": Загружено: "C:\Windows\System32\advapi32.dll", Невозможно найти или открыть файл PDB
"oop_zad1.exe": Загружено: "C:\Windows\System32\rpcrt4.dll", Невозможно найти или открыть файл PDB
"oop_zad1.exe": Загружено: "C:\Windows\System32\wintrust.dll", Невозможно найти или открыть файл PDB
"oop_zad1.exe": Загружено: "C:\Windows\System32\crypt32.dll", Невозможно найти или открыть файл PDB
"oop_zad1.exe": Загружено: "C:\Windows\System32\msasn1.dll", Невозможно найти или открыть файл PDB
"oop_zad1.exe": Загружено: "C:\Windows\System32\userenv.dll", Невозможно найти или открыть файл PDB
"oop_zad1.exe": Загружено: "C:\Windows\System32\secur32.dll", Невозможно найти или открыть файл PDB
"oop_zad1.exe": Загружено: "C:\Windows\System32\imagehlp.dll", Невозможно найти или открыть файл PDB
"oop_zad1.exe": Загружено: "C:\Windows\winsxs\x86_microsoft.vc80.crt_1fc8b3b9a1e18e3b_8.0.50727.4053_none_d08d7da0442a985d\msvcp80.dll", Невозможно найти или открыть файл PDB
"oop_zad1.exe": Загружено: "C:\Windows\System32\ole32.dll", Невозможно найти или открыть файл PDB
"oop_zad1.exe": Загружено: "C:\Windows\System32\imm32.dll", Невозможно найти или открыть файл PDB
"oop_zad1.exe": Загружено: "C:\Windows\System32\msctf.dll", Невозможно найти или открыть файл PDB
"oop_zad1.exe": Загружено: "C:\Windows\System32\lpk.dll", Невозможно найти или открыть файл PDB
"oop_zad1.exe": Загружено: "C:\Windows\System32\usp10.dll", Невозможно найти или открыть файл PDB
"oop_zad1.exe": Загружено: "C:\Windows\System32\vksaver.dll", Двоичный код не был построен с отладочной информацией.
"oop_zad1.exe": Загружено: "C:\Windows\System32\ntmarta.dll", Невозможно найти или открыть файл PDB
"oop_zad1.exe": Загружено: "C:\Windows\System32\Wldap32.dll", Невозможно найти или открыть файл PDB
"oop_zad1.exe": Загружено: "C:\Windows\System32\ws2_32.dll", Невозможно найти или открыть файл PDB
"oop_zad1.exe": Загружено: "C:\Windows\System32\nsi.dll", Невозможно найти или открыть файл PDB
"oop_zad1.exe": Загружено: "C:\Windows\System32\psapi.dll", Невозможно найти или открыть файл PDB
"oop_zad1.exe": Загружено: "C:\Windows\System32\samlib.dll", Невозможно найти или открыть файл PDB
"oop_zad1.exe": Загружено: "C:\Windows\System32\apphelp.dll", Невозможно найти или открыть файл PDB
Программа "[5284] oop_zad1.exe: Машинный код" завершилась с кодом 0 (0x0).
0
ForEveR
В астрале
Эксперт С++
7978 / 4737 / 321
Регистрация: 24.06.2010
Сообщений: 10,543
Завершенные тесты: 3
13.12.2010, 21:17 #6
Как бэ

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 Uravn {
public:
Uravn()
{
}
int a,b,c;
void vvod(void);
void discr(void);
void nalich(void);
void znach(void);
};
 
void Uravn:: vvod(void)
{
  cout<<("Введите параметр а")<<endl;
}
int main()
{
    Uravn vv;
    vv.vvod();
system("pause");
}
1
N-t0z
0 / 0 / 0
Регистрация: 19.11.2009
Сообщений: 16
13.12.2010, 21:40 #7
Ошибку понял. Спасибо
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
13.12.2010, 21:40
Привет! Вот еще темы с ответами:

Вопрос про наследование. - C++
Добрый день всем! Возможно ли создать производный класс в который будут помещены 2 объекта базового класса с возможностью...

Вопрос про файлы - C++
где распологать текстовый файл, чтобы программа видела его сразу без прописания директории? пишу в VS

Вопрос про std:: - C++
std::cout &lt;&lt; &quot;Hello, world!&quot; &lt;&lt; std::endl; а можно cout &lt;&lt; &quot;Hello, world!&quot; &lt;&lt;endl; std пространство имен... где про это...

вопрос про указателей - C++
вот напр эта строка int *m=new int; это как я понял создается указатель?тогда что такое new int?


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

Или воспользуйтесь поиском по форуму:
7
Yandex
Объявления
13.12.2010, 21:40
Ответ Создать тему
Опции темы

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