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

Класс Person - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Создание двумерного динамического массива http://www.cyberforum.ru/cpp-beginners/thread943034.html
У Хортона А. - Visual C++ 2005 написано как создавать динамические массивы таким способом: Выделение памяти в свободном хранилище для многомерного массива предполагает использование new в несколько более сложной форме, чем для одномерного массива. Если предположить, что у вас уже есть соответствующим образом указатель pbeans, то получение пространства памяти для массива beans, с которым вы...
C++ Не могу объявить массив внутри main - ошибка при линковке Доброго времени суток! Я начинающий в С++. Использую gcc в Ubuntu 13.04 x64 bit. Прохожу сейчас массивы. Заметил одну странность. При попытке одновременного объвления - массива внутри main - и использования printf() при компиляции выходит ошибка, я как понял линковщика, следующего содержания: /tmp/ccXzvblP.o:(.eh_frame+0x13): undefined reference to `__gxx_personality_v0' http://www.cyberforum.ru/cpp-beginners/thread943029.html
C++ toupper, tolower, strlen и кириллица
Эти три функции не хотят нормально работать с кириллицей. Если им скормить американские литеры, все нормально. Но вот, например, эта программа печатает "тест", а по-идее должна "ТЕСТ". // Преобразование строчных символов в заглавные. #include <iostream> #include <cstring> #include <cctype> using namespace std; int main()
C++ Ошибка предположительно в strncpy(word, p1, len)
Есть простенький обучающий пример: #include "stdafx.h" #include <iostream> #include <ctype.h> #include <string.h> using namespace std;
C++ realloc http://www.cyberforum.ru/cpp-beginners/thread943001.html
#include <iostream> using namespace std; int main() { int size=0; cout<<"enter size array: "; cin>>size; int *arr;
C++ Посоветуйте литературу для изучения C++ Хоу, форумчане. Недавно начал изучать с++, сейчас читаю какие-то онлайн курсы, но там только базовая информация. Посоветуйте книгу какуюнибудь хорошую Сейчас изучаю вот эти уроки: http://www.programmersclub.ru/main/ подробнее

Показать сообщение отдельно
Tantay
0 / 0 / 0
Регистрация: 28.04.2012
Сообщений: 111
24.08.2013, 16:59     Класс Person
Добрый день, форумчане. Решал задание из книги С.Прата, №2 из главы 10. Пусть имеется определение простого класса в нем используется объект string и символьный массив. Напишите программу, которая дополнит реализацию за счет предоставления кода для пока еще не определенных методов. В программе, использующей класс, должны также присутствовать вызовы трех возможных конструкторов (без аргументов, с одним аргументом, с двумя
аргументами) и двух методов отображения.
Вот мой код, он компилится, но отображает не так как нужно. Обьясните пожалуйста в чем моя ошибка?

Person.h
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#ifndef PERSON_H_
#define PERSON_H_
#include <string>
 
class Person
{
private: 
    static const int LIMIT = 25;
    std::string lname;
    char fname[LIMIT];
 
public:
    Person() {lname=""; fname[0]='\0';};
    Person(const std::string & ln, const char* fn="Heyyou");
    //Person(const std::string & ln, const char* fn);
    ~Person(void);
 
    void Show() const;
    void FormalShow() const;
};
 
#endif


Person.cpp
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 "Person.h"
#include <iostream>
 
 
//Person::Person()
//{
//  //fname[LIMIT] = '\0';
//  //lname = "";
//}
 
Person::Person(const std::string & ln, const char* fn)
{
    lname = ln;
//  strncpy(Person::fname, fn, LIMIT-1);
    fname[LIMIT] = '\0'; 
}
 
 
Person::~Person(void){}
 
void Person::Show() const
{
    using namespace std;
    cout << fname << " " << lname << endl;
}
 
void Person::FormalShow() const
{
    using namespace std;
    cout << lname << ", " << fname << endl;


"UsesPerson.cpp"
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
#include <iostream>
#include "Person.h"
 
int main()
{
    {
        using namespace std;
 
        Person one;
        Person two = Person ("Smythecraft");
        Person three ("Dimwiddy", "Sam");
 
        one.Show();
        one.FormalShow();
 
        cout <<endl;
        two.Show();
        two.FormalShow();
        
        cout <<endl;
        three.Show();
        three.FormalShow();
        cout <<endl;
    }
    system("pause");
}
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 02:09. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru