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

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

Войти
Регистрация
Восстановить пароль
 
Мегатрон
нубик программист)
96 / 10 / 0
Регистрация: 04.06.2008
Сообщений: 355
#1

классы непойму что с конструктором - C++

22.01.2010, 16:16. Просмотров 708. Ответов 8
Метки нет (Все метки)

привет вот создал такой класс
но чето конструктор ругается но что непойму(

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
#include <iostream>
#include <string>
using namespace std;
const int N = 30;
 class per
 {
 private:
     string st;
     char nm [N];
 public:
     per (const string &t, const char *ch = "Lexx");
     ~per();
     void Fvew () const;
 };
 
 per::per(const std::string &t, const char *ch = "Lexx")
 {
     st = t;
     strncpy_s (nm, ch, N);
 }
 per::~per() { cout << "xa xa xa" << endl;}
 void per::Fvew() const
 {
     cout << st << " : " << nm << endl;
 }
 
int main()
{
    string le = "Alex";
     per clss (le);
     clss.Fvew();
     
    return 0;
}

вот что выдает
error C2572: 'per:er' : redefinition of default parameter : parameter 2
1> d:\documents and settings\administrator\мои документы\visual studio 2008\projects\primer_01\primer_01\main.cpp(11) : see declaration of 'per:er'
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
22.01.2010, 16:16
Здравствуйте! Я подобрал для вас темы с ответами на вопрос классы непойму что с конструктором (C++):

Что-то с конструктором - C++
Задача: написать программу бюджета, есть два типа счета, у каждого свои параметры пополнения и снятия. Место вывода баланса только что...

что не так с конструктором с параметрами - C++
создаю экземпляры класса , один через конструктор с параметрами но указываю параметрами он мне пишет ошибка что преобразования типов не...

Не компилируется: что не так с конструктором структуры? - C++
Есть некий класс - односвязный линейный список, с элементами типа TElem. Шаблонность здесь только чтобы хранить различные объекты в списке...

что происходит со старым конструктором когда я создаю новый, пренадлежащий производному типу? (первый конструктор пренадлежит базовому типу) - C++
1) что происходит со старым конструктором когда я создаю новый, пренадлежащий производному классу? (первый конструктор пренадлежит базовому...

Поиск символа - непойму - C++
я юзаю strchr но непойму что за второй параметр..он ИНТ! мне нужно найти кол-во символов в тексте например а. а если для string...

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

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Genius Ignat
1236 / 774 / 44
Регистрация: 16.09.2009
Сообщений: 2,014
22.01.2010, 16:47 #2
Мегатрон:
В реализация конструктора уже не надо в параметре прописывать умолчание.
C++
1
2
3
4
per::er(const std::string &t, const char *ch){
//твоя реализация
 
}
Добавлено через 12 минут
Так что всё равно не работает?
Мегатрон
нубик программист)
96 / 10 / 0
Регистрация: 04.06.2008
Сообщений: 355
22.01.2010, 17:06  [ТС] #3
per:er(const std::string &t, const char *ch)
так то работает))

у меня в книжке задание
что при объявлении
per two (" Semen");

тоесть объявил фамилию и имя уже есть "Lexx"

Добавлено через 3 минуты
Цитата Сообщение от Genius Ignat Посмотреть сообщение
Мегатрон:
В реализация конструктора уже не надо в параметре прописывать умолчание.
C++
1
2
3
4
per::er(const std::string &t, const char *ch){
//твоя реализация
 
}
Добавлено через 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
#include <iostream>
#include <string>
using namespace std;
const int N = 30;
 class per
 {
 private:
         string st;
         char nm [N];
 public:
         per (const string &t, const char *ch = "Lexx");
         ~per();
         void Fvew () const;
 };
 
 per::per(const std::string &t, const char *ch)
 {
         st = t;
         strncpy_s (nm, ch, N);
 }
 per::~per() { cout << "xa xa xa" << endl;}
 void per::Fvew() const
 {
         cout << st << " : " << nm << endl;
 }
 
int main()
{
        string le = "Alex";
         per clss (le);
         clss.Fvew();
         
        return 0;
}
Genius Ignat
1236 / 774 / 44
Регистрация: 16.09.2009
Сообщений: 2,014
22.01.2010, 17:17 #4
Шась проверим.

Добавлено через 2 минуты
strncpy_s' : undeclared identifier
Я не знаю с какой это библиотеки.
Ты не подключил #include "файл" с объявлением этой функции.

Добавлено через 42 секунды
Есть не безопасная альтернатива: strcpy

Добавлено через 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
25
26
27
28
29
30
31
32
33
34
#include <iostream>
#include <string>
using namespace std;
const int N = 30;
 class per
 {
 private:
         string st;
         char nm [N];
 public:
         per (const string &t, const char *ch = "Lexx");
         ~per();
         void Fvew () const;
 };
 
 per::per(const std::string &t, const char *ch)
 {
         st = t;
         strcpy(nm, ch);
 }
 per::~per() { cout << "xa xa xa" << endl;}
 void per::Fvew() const
 {
         cout << st << " : " << nm << endl;
 }
 
int main()
{
         string le = "Alex";
         per clss (le);
         clss.Fvew();
         
        return 0;
}
Андрейка
419 / 223 / 27
Регистрация: 25.03.2009
Сообщений: 744
22.01.2010, 19:21 #5
C++
1
я подозреваю, что strncpy_s' ты хакнул у Билла :D
CyBOSSeR
Эксперт C++
2300 / 1670 / 86
Регистрация: 06.03.2009
Сообщений: 3,675
23.01.2010, 04:05 #6
Цитата Сообщение от Genius Ignat Посмотреть сообщение
Я не знаю с какой это библиотеки.
Скачай Visual Assist X. Эта, а также ряд других проблем отпадут.
Мегатрон
нубик программист)
96 / 10 / 0
Регистрация: 04.06.2008
Сообщений: 355
23.01.2010, 05:08  [ТС] #7
Цитата Сообщение от Андрейка Посмотреть сообщение
C++
1
я подозреваю, что strncpy_s' ты хакнул у Билла :D
а у меня на 2008 проф студии она работает=)))
taras atavin
Ушёл с форума.
3569 / 1752 / 91
Регистрация: 24.11.2009
Сообщений: 27,619
23.01.2010, 05:44 #8
Студию у Билла делали, факт.
Мегатрон
нубик программист)
96 / 10 / 0
Регистрация: 04.06.2008
Сообщений: 355
23.01.2010, 12:03  [ТС] #9
Цитата Сообщение от taras atavin Посмотреть сообщение
Студию у Билла делали, факт.
80% всех разработок это русские=)))

Добавлено через 44 минуты
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
#include <iostream>
#include <string>
using namespace std;
const int N = 30;
 class per
 {
 private:
         string st;
         char nm [N];
 public:
         per (const string &t, const char *ch = "Lexx");
         per (const string &t, const char *ch );
         ~per();
         void Fvew () const;
 };
 
 per::per(const std::string &t, const char *ch)
 {
         st = t;
         strcpy(nm, ch);
 }
   per::per(const std::string &t, const char *ch)
 {
         st = t;
         strcpy(nm, ch);
 }
 per::~per() { cout << "xa xa xa" << endl;}
 void per::Fvew() const
 {
         cout << st << " : " << nm << endl;
 }
 
int main()
{
         string le = "Alex";
         per clss (le);
         clss.Fvew();
         
        return 0;
}
я создал еще один конструктор тока другой немного но он что-то ругает
per:er(const std::string &t, const char *ch)

тоесть у меня их два один с уже по умолчание именем
второй без умолчания?

Добавлено через 19 минут
блин мужики врубился))
я чето немного занубил)
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
23.01.2010, 12:03
Привет! Вот еще темы с ответами:

Непойму про компиляторы - C++
Компилятор написан на с++ как такое может быть? ведь чтобы скомпилировать такой компилятор нужен был еще кактой компилятор который тоже...

Классы (что-то нетрудное) - C++
Ошибка Unit1.h(41): E2303 Type name expected class Point { int x; int y; } ; class figure {

Классы - что это? - C++
Что такое классы? Зачем они нужны? И как их использовать?

Теоретически понимаю, а как записать - непойму - C++
дан массив случайных чисел B. все необходимые с ним действия сделала. кроме одного.. Нужно записать элементы массива B (50) с индексами...


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

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

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