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

"Member function may not be redeclared outside its class" - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Описать структуру с именем AEROFLOT http://www.cyberforum.ru/cpp-beginners/thread349970.html
Приветик всем! Помогите пожалуйста! Надо переделать программу на Си. Ниже написана подобная программа, но некоторое надо изменить: записи должны быть упорядочены по возрастанию НОМЕРА РЕЙСА, а ниже...
C++ Лексема,Синтаксис и Семантика данного выражения. помогите разобрать данное выражение. int * m = new int что каждое из них означает,что означает int, * , m , = , new , int , нужно посмотреть правильный ли синтаксис, есть ли симантика(смысл... http://www.cyberforum.ru/cpp-beginners/thread349969.html
Ошибка при перегрузке + C++
Что не так? error C2601: Matrica::operator +: недопустимые локальные определения функций #pragma once class Matrica { public: int n; float ** a,**b,**c; Matrica(int m=1); ...
C++ Eclipse +GDB: проблемы с отладкой
В коде в начале идет инициализация переменных, а потом считывание строки: cout << "Input expression to convert > "; cin >> in_string; Включаю режим отладки нажатием клавиши F11. Иду по шагам...
C++ Классы http://www.cyberforum.ru/cpp-beginners/thread349937.html
Написал программу расстояние между двумя точками с использованием классов. Во втором хочу использовать элемент первого. Не работает. Как это сделать? #include <iostream> #include <cmath> using...
C++ обработка символьной и строковой информации Изменить текст, чтоб слова разделились ровно одним пробелом. подробнее

Показать сообщение отдельно
Artishok
ЧакЭ одобряЭ
277 / 276 / 32
Регистрация: 27.12.2009
Сообщений: 1,767

"Member function may not be redeclared outside its class" - C++

10.09.2011, 14:51. Просмотров 2188. Ответов 1
Метки (Все метки)

подчеркивает красной линией конструктор копирования с таким сообщением в Tkadr.cpp
Tkadr.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
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
#include "TKadr.h"
#include <iostream>
#include <stdlib.h>
#include <string.h>
#include <memory.h>
 
void Kadr::init()
{
    name=new char[MAX_STRING_LEN];
    memset(name,0,MAX_STRING_LEN);
    tseh=0;
    razriad=0;
}
 
Kadr::Kadr()
{
   init();
   printf("Default constructor");
}
 
Kadr::Kadr(char *_name,int _tseh,int _razriad)
{
    init();
    SetName(_name);
    SetTseh(_tseh);
    SetRazriad(_razriad);
    printf("Constructor with params");
}
 
Kadr::Kadr(Kadr& _kadr)//конструктор копирования
{
    init();
    SetName(_kadr.GetName());
    SetTseh(_kadr.GetTseh());
    SetRazriad(_kadr.GetRazriad());
    printf("Copy constructor");
}
 
Kadr::~Kadr()
{
    delete[] name;
    name=NULL;
}
 
const char* Kadr::GetName()
{
    return name;
}
 
int Kadr::GetTseh()
{
    return tseh;
}
 
int Kadr::GetRazriad()
{
    return razriad;
}
 
void Kadr::SetName(char *_name)
{
    if (_name==NULL)
    {
       printf("Нет данных");
       return;
    }
    strcpy(name,_name);
}
 
void Kadr::SetRazriad(int _razriad)
{
    razriad=_razriad;
}
 
void Kadr::Show()
{
    std::cout<<name<<" "<<tseh<<" "<<razriad;
}
Tkadr.h
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
#ifndef TKADR_H
#define TKADR_H
 
#define MAX_STRING_LEN 100
#include <iostream>
 
 
 
class Kadr
{
    char *name;
    int  tseh;
    int  razriad;
 
private:
     void init();
 
public:
    Kadr();
    Kadr(char *_name,int _tseh ,int _razriad);
    Kadr(Kadr& _kadr);
    ~Kadr(){};
    void SetName(char *_name);
    void SetTseh(int _tseh);
    void SetRazriad(int _razriad);
    const char* GetName();
    int GetTseh();
    int GetRazriad();
    void Show();
}
 
#endif
main.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
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
#include <iostream>
using std::cin;
using std::cout;
 
#include "TKadr.h"
 
 
 
int main()
{
    Kadr a1;
    a1.SetName("obj1");
    a1.SetRazriad(1);
    a1.SetTseh(2);
 
    Kadr a2("obj2",3,2);
 
    Kadr *a3=new Kadr("obj3",3,2);
    Kadr a4(a1);
    a4.SetName("a4");
    //указатель на функцию
    void (Kadr::*showKadr)();
    showKadr=&Kadr::Show;
 
    (a4.*showKadr)();
 
 
    Kadr kadri[]={a1,a2,*a3,a4};
    for(int i=0;i<4;i++)
       kadri[i].Show();
    std::cout<<std::endl;
    Kadr** kadrovik=new Kadr*[4];
    kadrovik[0]=&a1;
    kadrovik[1]=&a2;
    kadrovik[2]=a3;
    kadrovik[3]=&a4;
    for(int i=0;i<4;i++)
       kadrovik[i]->Show();
 
    delete[] kadrovik;
    delete a3;
 
    getchar();
    return 0;
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru