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

Создать свой класс - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 11, средняя оценка - 5.00
AnreyKazakov
Заблокирован
17.09.2012, 14:39     Создать свой класс #1
сижу книжку читаю (уже пару недель), там по чуть-чуть все время про классы (в каждой главе) рассказывают, а как полностью сконструировать пока нигде нет, в общем надоела уже такая "оттяжка"... Помогите, пожалуйста, "поэтапно" сконструировать класс. А то у меня знания о нем в шахматном порядке, блин....
Пока смог только объявить класс, вот:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#include <iostream>
#include <string>
using std::cout;using std::endl;using std::string;
 
class ferstmy{ \\класс =)
    public:
    int k1;
    private:
    int k2;
    };
 
int main(){
    cout<<"Все работает!"<<endl;
    ferstmy klass1;
    
    }
Сразу вопросы появились Во-первых, какая разница в объявлении
private и public
переменных, неужели не будет видна переменная к2 из main'а?
Во-вторых, каким-то значением можно класс приведенный выше инициализировать? Пробовал klass1=1
и ferstmy klass(1); не пашет. Он же содержит переменную int к1 public....

Добавлено через 2 минуты
Ну, то есть присвоить как-нибудь можно какое-нибудь значение?
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
co6ak
Кошковед
 Аватар для co6ak
402 / 495 / 29
Регистрация: 12.04.2010
Сообщений: 1,392
17.09.2012, 14:40     Создать свой класс #2
klass.k1 = 2; \\ сработает
klass.k2 = 2; \\ не сработает. нет доступа, ибо прайвт
ForEveR
Модератор
Эксперт C++
 Аватар для ForEveR
7927 / 4709 / 318
Регистрация: 24.06.2010
Сообщений: 10,524
Завершенные тесты: 3
17.09.2012, 14:43     Создать свой класс #3
AnreyKazakov, Если читаете книжку - читайте. Там все будет объясняться. Если есть желание лезть вперед - смотрите так же в книжку. Форум - не книга.
AnreyKazakov
Заблокирован
17.09.2012, 14:48  [ТС]     Создать свой класс #4
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#include <iostream>
#include <string>
using std::cout;using std::endl;using std::string;
class ferstmy{
    public:
    int k1;
    string str1;
    private:
    int k2;
    };
 
int main(){
    cout<<"Все работает!"<<endl;
    ferstmy klass1;
    klass1.k1=5;
    cout<<(klass1.k1+1)<<endl;
    }
хорошо, переписал, работает, ура ! =)
Теперь вопрос следующий, я видел, что допустим в классе объявлен стринг и инт, как выше
C++
1
2
int k1;
string str1;
Вот так, и там присваивание шло как-то так cin>>klass; вот, а в запрос на ввод строки вписывали
12 asdfggsas
и в результате k1 присваивалось число 12, а str присваивалась оставшийся кусок asdfggsas
Для такой фишки специальную член-функцию надо писать, да?
ForEveR
Модератор
Эксперт C++
 Аватар для ForEveR
7927 / 4709 / 318
Регистрация: 24.06.2010
Сообщений: 10,524
Завершенные тесты: 3
17.09.2012, 14:49     Создать свой класс #5
AnreyKazakov, Оператор ввода из потока надо писать - читайте книгу дальше.
AnreyKazakov
Заблокирован
17.09.2012, 14:49  [ТС]     Создать свой класс #6
Цитата Сообщение от ForEveR Посмотреть сообщение
Если есть желание лезть вперед - смотрите так же в книжку.
Да я честно устал уже, в основном из-за классов и стал читать, а уже 288 страница, до сих пор никаких целостных знаний не получил, одни обрывки...
co6ak
Кошковед
 Аватар для co6ak
402 / 495 / 29
Регистрация: 12.04.2010
Сообщений: 1,392
17.09.2012, 14:51     Создать свой класс #7
страуструпа надобно читать
defer
秘密
 Аватар для defer
555 / 235 / 3
Регистрация: 29.11.2010
Сообщений: 783
17.09.2012, 15:38     Создать свой класс #8
Крупник А.Б. - Изучаем C++
AnreyKazakov
Заблокирован
17.09.2012, 16:51  [ТС]     Создать свой класс #9
Сделал конструктор (по книжке), но он не пашет, компилятор материт, и не компелит
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#include <iostream>
#include <string>
using std::cout;using std::endl;using std::string;
class ferstmy{
    public:
    int k1;
    int k2;
    ferstmy{}:k1(23),k2(32)()//вот здесь...
    private:
    
    };
 
int main(){
    cout<<"Все работает!"<<endl;
    ferstmy klass1;
    klass1.k1=8;
    cout<<(klass1.k1+1)<<" "<<(klass1.k2)<<endl;
    }
defer
秘密
 Аватар для defer
555 / 235 / 3
Регистрация: 29.11.2010
Сообщений: 783
17.09.2012, 16:52     Создать свой класс #10
а так

C++
1
ferstmy():k1(23),k2(32){}
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
17.09.2012, 16:53     Создать свой класс
Еще ссылки по теме:

Создать свой класс, содержащий три закрытые переменные C++
Строки свой класс C++
C++ Создать класс Man (человек), с полями: имя, возраст, пол и вес. Создать производный класс Student ...

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

Или воспользуйтесь поиском по форуму:
AnreyKazakov
Заблокирован
17.09.2012, 16:53  [ТС]     Создать свой класс #11
Ахах, написал, увидел ошибку =)
Yandex
Объявления
17.09.2012, 16:53     Создать свой класс
Ответ Создать тему
Опции темы

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