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

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

Войти
Регистрация
Восстановить пароль
 
 
Рейтинг: Рейтинг темы: голосов - 13, средняя оценка - 4.69
garikkk1
-51 / 0 / 0
Регистрация: 28.02.2011
Сообщений: 44
#1

Не отображается конструктор с параметрами - C++

15.03.2011, 20:18. Просмотров 1740. Ответов 28
Метки нет (Все метки)

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
59
60
61
62
63
64
65
66
67
68
69
// рншр.cpp: определяет точку входа для консольного приложения.
//
 
#include "stdafx.h"
#include <iostream>
 
 
class compyter
{
 
public:
compyter();
compyter(char*,float,int);
compyter(compyter &c);
void print_compyter();
~compyter();
 
private:
char *name;
float chastota;
int pamajt;
};
 
compyter::compyter()
{
   pamajt=256;
   chastota=2000;
   name=new char[20];
   strcpy(name,"Komp");
   printf("constructor has called without parametrs\n");
}
 
compyter::compyter(char* p,float ch,int m)
{
   pamajt=m;
   chastota=ch;
   name=new char[strlen(p)+1];
   strcpy(name,p);
      printf("constructor has called with parametrs\n");
}
 
compyter::compyter(compyter &c)
{
   pamajt=c.pamajt;
   chastota=c.chastota;
   name=new char[strlen(c.name)+1];
   strcpy(name,c.name);
      printf("Object has made with CopyConstructor\n");
}
 
void compyter::print_compyter(void){
   printf("Name = %s\n",name);
   printf("Chastota = %lf\n",chastota);
   printf("Pamajt = %d\n",pamajt);
}
compyter::~compyter()
{
delete [] name;
}
 
int main()
{       compyter k1;
        compyter k2(k1);
 
        k1.print_compyter();
        k2.print_compyter();
        system("PAUSE");
        return 0;
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
15.03.2011, 20:18
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Не отображается конструктор с параметрами (C++):

Создать класс. Написать конструктор по умолчанию, конструктор с параметрами. Перегрузить операции «меньше» и «равно» - C++
Помогите пожалуйста, хоть с одним из заданий. 1. Создать класс. Написать конструктор по умолчанию, конструктор с параметрами....

Конструктор с параметрами - C++
Доброе время суток! Суть вопроса вот в чем: Есть класс Game, в котором создаю объект с параметрами. Параметры я пытаюсь передать...

Конструктор с параметрами - C++
Забыл как выводить конструктор с параметрами, пробую так не выходит. #include &lt;iostream&gt; using namespace std; class Thread{ ...

Конструктор с параметрами - C++
Не получается конструктор с параметром.. помогите пожалуйста! вот весь класс, нужно чтобы можно было в main писать вот так например: ...

Конструктор с параметрами по умолчанию - C++
пытаюсь создать класс с параметрами по умолчанию(я да, надеюсь, что я не путаюсь в терминах) #include &lt;iostream&gt; class some { ...

Никогда не использовать конструктор с параметрами? - C++
Если я захочу чтоб в одном классе был вложен другой класс например есть класс &quot;бумажник&quot; а класс &quot;человек&quot; среди своих данных содержит...

28
HighPredator
5545 / 1858 / 346
Регистрация: 10.12.2010
Сообщений: 5,443
Записей в блоге: 2
15.03.2011, 22:39 #16
Ну и как?
0
garikkk1
-51 / 0 / 0
Регистрация: 28.02.2011
Сообщений: 44
15.03.2011, 22:41  [ТС] #17
Цитата Сообщение от Predator_2004 Посмотреть сообщение
Ну и как?
ошибка (на 1-ой странице) в откладку кидает.
0
ValeryS
Модератор
6729 / 5138 / 484
Регистрация: 14.02.2011
Сообщений: 17,231
15.03.2011, 22:49 #18
еще раз посмотри
Цитата Сообщение от garikkk1 Посмотреть сообщение
name=new char[strlen(p)+1];
strcpy(name,p);
и

Цитата Сообщение от garikkk1 Посмотреть сообщение
street="Im I.Chemesa";
strcpy(street,"Addr");
заметил разницу????

Добавлено через 2 минуты
Цитата Сообщение от Predator_2004 Посмотреть сообщение
У вас не проходит копирование. Выделенного места не хватает судя по всему.
Не у него нарушение доступа
0
HighPredator
5545 / 1858 / 346
Регистрация: 10.12.2010
Сообщений: 5,443
Записей в блоге: 2
15.03.2011, 22:52 #19
Цитата Сообщение от ValeryS Посмотреть сообщение
Не у него нарушение доступа
Можно подробнее а то я в конце дня не соображу?
0
garikkk1
-51 / 0 / 0
Регистрация: 28.02.2011
Сообщений: 44
15.03.2011, 22:52  [ТС] #20
Цитата Сообщение от ValeryS Посмотреть сообщение
еще раз посмотри

и


заметил разницу????

Добавлено через 2 минуты

Не у него нарушение доступа
C++
1
2
3
4
5
6
7
compyter::compyter(char* p,float ch,int m)
{
   pamajt=m;
   chastota=ch;
   name=new char[strlen(p)+1];
   strcpy(name,p);
      printf("constructor has called with parametrs\n");
и

C++
1
2
3
4
5
6
7
8
9
10
11
Addr::Addr(char* t,char *st, char *co, int n)
{
   number=n;
   street=new char[strlen(st)+1];
   strcpy(street,st);
   town=new char[strlen(t)+1];
   strcpy(town,t);
   country=new char[strlen(co)+1];
   strcpy(country,co);
 
      printf("constructor has called with parametrs\n");

вроде правильно
0
ValeryS
Модератор
6729 / 5138 / 484
Регистрация: 14.02.2011
Сообщений: 17,231
15.03.2011, 22:59 #21
Цитата Сообщение от garikkk1 Посмотреть сообщение
вроде правильно
ты посмотри на конструктор без параметров
и в первой и во второй программе конструктор с параметрами не вызывается.
есть конструктор без параметров и есть конструктор копирования
0
garikkk1
-51 / 0 / 0
Регистрация: 28.02.2011
Сообщений: 44
15.03.2011, 23:01  [ТС] #22
Цитата Сообщение от ValeryS Посмотреть сообщение
ты посмотри на конструктор без параметров
и в первой и во второй программе конструктор с параметрами не вызывается.
есть конструктор без параметров и есть конструктор копирования
ну так правильно. там написано если 2 конструкт равны то просто выводится уведомление об их равенстве!
0
ValeryS
Модератор
6729 / 5138 / 484
Регистрация: 14.02.2011
Сообщений: 17,231
15.03.2011, 23:05 #23
Цитата Сообщение от Predator_2004 Посмотреть сообщение
Можно подробнее а то я в конце дня не соображу?
в первом случае та выделил память

name=new char[strlen(p)+1];
и потом в нее копируешь строку. Все правильно с этой памятью ты можешь делать все что угодно.
во втором случае ты указал на строку(константу)
street="Im I.Chemesa";
и потом пытаешься туда записать новую строку а это низя
вот тебе и ошибка доступа(читай что тебе пишет отладчик)
т.е надо так же выделить память и тогда уже копировать
0
garikkk1
-51 / 0 / 0
Регистрация: 28.02.2011
Сообщений: 44
15.03.2011, 23:07  [ТС] #24
чет к ночи тож не варит бошка))) может напишишь как надо этот кусочек а остальное исправлю?
0
ValeryS
Модератор
6729 / 5138 / 484
Регистрация: 14.02.2011
Сообщений: 17,231
15.03.2011, 23:08 #25
Цитата Сообщение от garikkk1 Посмотреть сообщение
ну так правильно. там написано если 2 конструкт равны то просто выводится уведомление об их равенстве!
не понял? что значит конструкторы равны?
равны могут быть объекты класса
0
garikkk1
-51 / 0 / 0
Регистрация: 28.02.2011
Сообщений: 44
15.03.2011, 23:09  [ТС] #26
Цитата Сообщение от ValeryS Посмотреть сообщение
не понял? что значит конструкторы равны?
равны могут быть объекты класса
да правильно объекты-Object has made with CopyConstructor
0
ValeryS
Модератор
6729 / 5138 / 484
Регистрация: 14.02.2011
Сообщений: 17,231
15.03.2011, 23:09 #27
Цитата Сообщение от garikkk1 Посмотреть сообщение
name=new char[20];
strcpy(name,"Komp");
например так
0
HighPredator
5545 / 1858 / 346
Регистрация: 10.12.2010
Сообщений: 5,443
Записей в блоге: 2
15.03.2011, 23:11 #28
Цитата Сообщение от ValeryS Посмотреть сообщение
читай что тебе пишет отладчик
ППц. Увидел char *и думаю все ок... Надо больше отдыхать.
0
ValeryS
Модератор
6729 / 5138 / 484
Регистрация: 14.02.2011
Сообщений: 17,231
15.03.2011, 23:25 #29
кстати по теме ты не вызываешь конструктор с параметрами
C++
1
2
compyter k1; // конструктор без параметров
 compyter k2(k1);// конструктор копирования
для конструктора с параметрами надо вызвать например так
C++
1
 compyter k3("компМой",2002.3,512);// конструктор с параметрами
Добавлено через 10 минут
Цитата Сообщение от garikkk1 Посмотреть сообщение
да правильно объекты-Object has made with CopyConstructor
Объект может быть создан при помощи конструктора копирования
т.е ты можешь создать объект полную копию другого объекта
0
15.03.2011, 23:25
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
15.03.2011, 23:25
Привет! Вот еще темы с ответами:

Классы и конструктор по умолчанию/с параметрами - C++
Помогите пожалуйста! Необходимо сконструировать класс с заданным набором свойств. В данном случае, касс содержит следующие поля: продукт,...

Как сделать конструктор и деструктор с параметрами? - C++
как сделать конструктор и деструктор с параметрами?:-| #include &quot;stdafx.h&quot; #include &lt;iostream&gt; using namespace std; class...

Как вызвать конструктор с параметрами в конструкторе без параметров? - C++
Как вызвать конструктор с параметрами в конструкторе без параметров? То есть что бы конструктор с параметрами выступал в роли основного. В...

Класс Rational, определить стандарт. конструктор, с параметрами, опер. вычитания - C++
Разработайте и протестируйте класс Rational, представляющий рациональное число (простую дробь) в виде пары целых чисел: числитель и...


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

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

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