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

описание класса определённого типа - C++

Восстановить пароль Регистрация
 
 
Рейтинг: Рейтинг темы: голосов - 10, средняя оценка - 4.80
VtaMC
Просто Веталь
 Аватар для VtaMC
159 / 99 / 5
Регистрация: 11.05.2009
Сообщений: 628
19.03.2010, 22:44     описание класса определённого типа #1
Доброго времени суток!!!
Могули я описать класс определённого типа данных, например чтобы потом была возможна конструкция:
C++
1
2
3
MyClass object;
int a = 1;
object = a;
Заранее спасибо!!!
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
19.03.2010, 22:44     описание класса определённого типа
Посмотрите здесь:

Описание класса. C++
Описание класса C++
C++ Описание класса
C++ Как сделать шаблон, с параметром-классом - потомком определённого класса?
C++ Описание класса
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Genius Ignat
1233 / 771 / 44
Регистрация: 16.09.2009
Сообщений: 2,014
19.03.2010, 23:02     описание класса определённого типа #2
Можешь.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
class MyClass {
public:
int m_a;
MyClass(){m_a = 0;}
MyClass(int a):m_a (a) {}
    const MyClass& operator = (const int&a){
    m_a=a;
    return *this;
    }
 
 
};
 
int main(){
int a = 20;
MyClass obj;
obj = a;
return 0;
}
VtaMC
Просто Веталь
 Аватар для VtaMC
159 / 99 / 5
Регистрация: 11.05.2009
Сообщений: 628
20.03.2010, 20:58  [ТС]     описание класса определённого типа #3
Спасибо!
Genius Ignat
1233 / 771 / 44
Регистрация: 16.09.2009
Сообщений: 2,014
20.03.2010, 20:58     описание класса определённого типа #4
Стараемся.
VtaMC
Просто Веталь
 Аватар для VtaMC
159 / 99 / 5
Регистрация: 11.05.2009
Сообщений: 628
20.03.2010, 21:13  [ТС]     описание класса определённого типа #5
А можете прокомментировать?
Genius Ignat
1233 / 771 / 44
Регистрация: 16.09.2009
Сообщений: 2,014
20.03.2010, 21:21     описание класса определённого типа #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
class MyClass {
 
public:                         //доступный интерфейс.
int m_a;
MyClass(){m_a = 0;}      //конструктор по умолчанию
 
 
/*конструктор с параметром позволяет задать значение при создании объекта: допустим: 
MyClass obj(20);            */
 
MyClass(int a):m_a (a) {}
//--------------------------------------------------------------------
        //Операция присваивания =
        const MyClass& operator = (const int&a){
        m_a=a;        //присваиваем переменно класса значения.
        return *this; //возвращаем ссылку на себя так как операции могут иметь серийный вид:a=b=c
        }
 
 
};
 
int main(){
int a = 20;
MyClass obj;  //создаем объект типа MyClass вызывается конструктор по умолчанию ()
obj = a;     /*присваиваем значение(через операцию =) внутренней переменной объекта: m_a */
return 0;
}
VtaMC
Просто Веталь
 Аватар для VtaMC
159 / 99 / 5
Регистрация: 11.05.2009
Сообщений: 628
22.03.2010, 19:52  [ТС]     описание класса определённого типа #7
Почему-то не присваивает значение таким образом:

C++
1
2
3
4
5
6
7
8
9
10
11
12
//есть функция с параметром MyClass
void myfunc(MyClass a);
//вызываю функцию так
myfunc(12); // выдаёт ошибку приведения типов
//ещё вот
MyClass a = 12;//выдаёт такую же ошибку
//если написать через переменную
int a = 12;
myfunc(a);//такой вариант работает
//так же с объектами
MyClass a;
a = 12; //работает
^Tecktonik_KiLLeR
 Аватар для ^Tecktonik_KiLLeR
1144 / 426 / 19
Регистрация: 23.06.2009
Сообщений: 6,141
Завершенные тесты: 1
22.03.2010, 20:03     описание класса определённого типа #8
Цитата Сообщение от VtaMC Посмотреть сообщение
object = a;
если в конструкторе объявлен тип инт то да.
Цитата Сообщение от VtaMC Посмотреть сообщение
Почему-то не присваивает значение таким образом:
весь весь код
Genius Ignat
1233 / 771 / 44
Регистрация: 16.09.2009
Сообщений: 2,014
22.03.2010, 20:07     описание класса определённого типа #9
У меня работает вот рабочий код:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
class MyClass {
 
public:                         
int m_a;
MyClass(){m_a = 0;}     
MyClass(int a): m_a(a) {}
        const MyClass& operator = (const int&a){
        m_a=a;       
        return *this; 
        }
 
 
};
void myfunc(MyClass a)  {   }
int main(){
MyClass obj = 20;     
myfunc(10);
return 0;
}
VtaMC
Просто Веталь
 Аватар для VtaMC
159 / 99 / 5
Регистрация: 11.05.2009
Сообщений: 628
22.03.2010, 20:36  [ТС]     описание класса определённого типа #10
С int заработало. А вот с std::string не работает.
Genius Ignat
1233 / 771 / 44
Регистрация: 16.09.2009
Сообщений: 2,014
22.03.2010, 21:23     описание класса определённого типа #11
С какаго боку с int что это за волшебство, поставь в классе везде вместо int: std::string
VtaMC
Просто Веталь
 Аватар для VtaMC
159 / 99 / 5
Регистрация: 11.05.2009
Сообщений: 628
22.03.2010, 21:25  [ТС]     описание класса определённого типа #12
Вот я так и делал... всё равно...
Genius Ignat
1233 / 771 / 44
Регистрация: 16.09.2009
Сообщений: 2,014
22.03.2010, 21:38     описание класса определённого типа #13
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#include <string>
class MyClass {
 
public:                         
std::string m_a;
MyClass(){m_a = "";}     
MyClass(std::string a): m_a(a) {}
        const MyClass& operator = (const std::string&a){
        m_a=a;       
        return *this; 
        }
 
 
};
void myfunc(MyClass a)  {   }
int main(){
std::string str = "Ignat";
MyClass obj = str;     
myfunc(str);
return 0;
}
VtaMC
Просто Веталь
 Аватар для VtaMC
159 / 99 / 5
Регистрация: 11.05.2009
Сообщений: 628
22.03.2010, 22:21  [ТС]     описание класса определённого типа #14
Только присвоение значения при описании не работает (например MyObject a = "строка").
Genius Ignat
1233 / 771 / 44
Регистрация: 16.09.2009
Сообщений: 2,014
23.03.2010, 19:35     описание класса определённого типа #15
MyObject a = "строка": и не будет работать так как это массив символов типа char.
Если хочешь что бы работало добавь следующие вещи в класс

C++
1
2
3
4
5
6
7
MyClass(const char * str) {
m_a = str;
}
 const MyClass& operator = (const char *str){
        m_a=str;       
        return *this; 
 }
Добавь и не чего не удаляй:
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
#include <string>
class MyClass {
 
public:                         
std::string m_a;
MyClass(){m_a = "";}  
MyClass(const char * str) {
m_a = str;
}
 
MyClass(std::string a): m_a(a) {}
        const MyClass& operator = (const std::string&a){
        m_a=a;       
        return *this; 
        }
 
  const MyClass& operator = (const char *str){
        m_a=str;       
        return *this; 
 }
 
 
};
void myfunc(MyClass a)  {   }
int main(){
std::string str = "Ignat";
MyClass obj = str;  
MyClass obs_s = "dddd";   
obs_s = "ssa";
myfunc(str);
return 0;
}
Добавлено через 36 минут
Если не секрет что ты хочешь изобрести с этим классом.
Мое предположение ты хочешь сделать оболочку std::string...

Добавлено через 20 часов 4 минуты
Или внутри класс используется строка, а ты ей хочешь управлять через класс.
VtaMC
Просто Веталь
 Аватар для VtaMC
159 / 99 / 5
Регистрация: 11.05.2009
Сообщений: 628
23.03.2010, 19:38  [ТС]     описание класса определённого типа #16
Решил попробовать воспроизвести стандартные классы из C++ Builder в Dev C++, интересно просто стало... Спасибо за ответы Genius Ignat! Всё работает...
Genius Ignat
1233 / 771 / 44
Регистрация: 16.09.2009
Сообщений: 2,014
23.03.2010, 19:57     описание класса определённого типа #17
Рад помочь
PointsEqual
ниначмуроФ
 Аватар для PointsEqual
832 / 516 / 33
Регистрация: 12.10.2009
Сообщений: 1,915
23.03.2010, 21:39     описание класса определённого типа #18
может не в тему но все равно:

чтобы string перевести в char можно вот такой приемчик сделать:

C++
1
2
string str="1234";
cout<<str.c_str();
Genius Ignat
1233 / 771 / 44
Регистрация: 16.09.2009
Сообщений: 2,014
23.03.2010, 21:49     описание класса определённого типа #19
Может кому и пригодится.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
24.03.2010, 08:06     описание класса определённого типа
Еще ссылки по теме:

Составить описание класса "3D вектор". Объявить объекты класса и продемонстрировать работу методов C++
Шаблон класса, параметром которого должны являться наследники определённого класса C++
C++ Описание класса

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

Или воспользуйтесь поиском по форуму:
VtaMC
Просто Веталь
 Аватар для VtaMC
159 / 99 / 5
Регистрация: 11.05.2009
Сообщений: 628
24.03.2010, 08:06  [ТС]     описание класса определённого типа #20
Цитата Сообщение от PointsEqual Посмотреть сообщение
может не в тему но все равно:

чтобы string перевести в char можно вот такой приемчик сделать:

C++
1
2
string str="1234";
cout<<str.c_str();
Это я и пытался повторить в Dev C++, т.к. String - это класс C++ Builder
Yandex
Объявления
24.03.2010, 08:06     описание класса определённого типа
Ответ Создать тему
Опции темы

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