Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 02.03.2011, 22:38   #1
Lex-7051
Пользователь
 
Регистрация: 02.03.2011
Сообщений: 24
По умолчанию C++ конфликт класса и функции cout

PHP код:
#include "stdafx.h"

#include<locale>
#include<conio.h>
#include<iostream>
using namespace std;

class 
cCar
{
public:
    
void GetMark() const;
    
void GetModel() const;
    
void GetNumber() const;
    
void GetRun() const;
    
void GetColor() const;
    
void GetYear() const;
    
void SetMark(string mark);
    
void SetModel(string model);
    
void SetNumber(string number);
    
void SetRun(unsigned short int run);
    
void SetColor(string color);
    
void SetYear(unsigned short int year);
private:
    
string itsMark;
    
string itsModel;
    
string itsNumber;
    
unsigned short int itsRun;
    
string itsColor;
    
unsigned short int itsYear;
};

cCar::GetMark()
    
cout<<"      Марка| "<<itsMark;
cCar::GetModel()
    
cout<<"     Модель| "<<itsModel;
cCar::GetNumber()
    
cout<<" Гос. Номер| "<<itsNumber;
cCar::GetRun()
    
cout<<"     Пробег| "<<itsRun;
cCar::GetColor()
    
cout<<"       Цвет| "<<itsColor;
cCar::GetYear()
    
cout<<"Год выпуска| "itsYear;

cCar::SetMark(string mark)
    
itsMark=mark;
cCar::SetModel(string model)
    
itsModel=model;
cCar::SetNumber(string number)
    
itsNumber=number;
cCar::SetRun(unsigned short int run)
    
itsRun=run;
cCar::SetColor(string color)
    
itsColor=color;
cCar::SetYear(unsigned short int year)
    
itsYear=year;


void main()
{
    
setlocale(LC_ALL,"Russian");
    
string mark="тест";
    
cCar a;
    
a.GetMark();
    
//a.GetModel();
    //a.GetNumber();
    //a.GetRun();
    //a.GetColor();
    //a.GetYear();
    
cout<<mark;
    
getch();

Компилятор: Visual C++ 2005

При компиляции возникают следующие ошибки:
error C3646: 'cout' : unknown override specifier
error C2143: syntax error : missing ';' before '<<'
error C2761: 'void cCar::GetMark(void) const' : member function redeclaration not allowed
...(Повторяются на каждый метод типа Get)

error C2761: 'void cCar::SetMark(std::string)' : member function redeclaration not allowed
fatal error C1903: unable to recover from previous error(s); stopping compilation
(Две последние ошибки)

Если полностью закомментировать обьявление и функции/методы класса, то cout определяется нормально: std::cout
В противном случае: int cout

Что я делаю не так, и как это исправить? С учётом того, что обьявление класса будет находиться в файле заголовка, а обьявление методов доступа в файле .cpp
Вложения
Тип файла: txt Program.txt (1.4 Кб, 114 просмотров)
Lex-7051 вне форума Ответить с цитированием
Старый 02.03.2011, 23:01   #2
onewho
Форумчанин
 
Регистрация: 29.09.2010
Сообщений: 636
По умолчанию

нормально функции опишите -перед телом везде void и во 2 половине ковычки
onewho вне форума Ответить с цитированием
Старый 02.03.2011, 23:18   #3
Lex-7051
Пользователь
 
Регистрация: 02.03.2011
Сообщений: 24
По умолчанию

Спасибо. Вопрос с cout снят. Но остались ошибки:

error C2511: 'void cCar::GetMark(void)' : overloaded member function not found in 'cCar' see declaration of 'cCar'

Собственно с них всё и начаналось.
Lex-7051 вне форума Ответить с цитированием
Старый 02.03.2011, 23:44   #4
onewho
Форумчанин
 
Регистрация: 29.09.2010
Сообщений: 636
По умолчанию

const везде добавьте также
onewho вне форума Ответить с цитированием
Старый 03.03.2011, 00:18   #5
Lex-7051
Пользователь
 
Регистрация: 02.03.2011
Сообщений: 24
По умолчанию

Спасибо. Тема закрыта.
Lex-7051 вне форума Ответить с цитированием
Старый 03.03.2011, 08:34   #6
Obey-Kun
Линуксоид
Участник клуба
 
Аватар для Obey-Kun
 
Регистрация: 31.07.2009
Сообщений: 1,403
По умолчанию

Хреново именуешь. Во всех хороших места:
1) Не используют венгерскую нотацию. То есть не cPoint, а просто Point.
2) Функции именуют как someFunc, классы как SomeClass, а переменные как some_var. При этом поля класса именуют не как m_some_var, _some_var или some_var_. С its слишком громоздко. И вообще не понятно, что за its.
Я схожу с ума или это глючит реальность?
Jabber ID: obey@obey.su
Obey-Kun вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Функции операторов для класса Superlotles Общие вопросы C/C++ 6 07.06.2010 01:50
Возвращение объекта из функции класса atenon Общие вопросы C/C++ 9 19.05.2010 03:24
Вызов функции класса по адресу VintProg Общие вопросы Delphi 9 03.11.2009 05:17
Массив ссылок на функции класса therom Общие вопросы C/C++ 0 30.09.2008 15:59
Статичиские функции класса Дмитрий_Ч Общие вопросы C/C++ 12 04.10.2007 16:19