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

Наследование функции - C++

Восстановить пароль Регистрация
 
sinobithug
0 / 0 / 0
Регистрация: 26.04.2014
Сообщений: 24
03.05.2014, 16:43     Наследование функции #1
Условие: функция должна быть задана вне класса.

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
 {
    class evm
    {    protected:
         char *a;
           public:
          
  evm(const evm& src) {
    int size = strlen(src.a) + 1;
    a = new char[size];
 
    strcpy(a, src.a);
 
  }
  ~evm()  { delete []a; }
};
 
void zap (evm &a);
 
 
 
  strncpy(a, Edit5->Text.c_str(), Text.Length());
 
 FILE * ptrFile = fopen("1.txt", "w");
 
  if (ptrFile != NULL)
  {
    fputs(a, ptrFile);
    fclose (ptrFile);
  }

strncpy(a, Edit5->Text.c_str(), Text.Length());
Компилятор не видит пременную а
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
cooller
 Аватар для cooller
564 / 532 / 120
Регистрация: 25.12.2013
Сообщений: 1,456
03.05.2014, 16:49     Наследование функции #2
Цитата Сообщение от sinobithug Посмотреть сообщение
strncpy(a, Edit5->Text.c_str(), Text.Length());
FILE * ptrFile = fopen("1.txt", "w");
if (ptrFile != NULL)
* {
* * fputs(a, ptrFile);
* * fclose (ptrFile);
* }
я чет не пойму, к чему относится этот код?
sinobithug
0 / 0 / 0
Регистрация: 26.04.2014
Сообщений: 24
03.05.2014, 19:26  [ТС]     Наследование функции #3
я чет не пойму, к чему относится этот код?

Это сама функция.
cooller
 Аватар для cooller
564 / 532 / 120
Регистрация: 25.12.2013
Сообщений: 1,456
03.05.2014, 19:29     Наследование функции #4
sinobithug, если это функция, тогда после
Цитата Сообщение от sinobithug Посмотреть сообщение
void zap (evm &a);
не должно стоять ;
и тело функции должно быть в фигурных скобках
вот
C++
1
2
3
4
5
6
7
8
9
10
11
12
void zap (evm &a)
{
    strncpy(a, Edit5->Text.c_str(), Text.Length());
 
    FILE * ptrFile = fopen("1.txt", "w");
 
    if (ptrFile != NULL)
    {
        fputs(a, ptrFile);
        fclose (ptrFile);
    }
}
Melg
416 / 152 / 62
Регистрация: 23.09.2013
Сообщений: 306
03.05.2014, 19:34     Наследование функции #5
В контексте вашего вопроса, я бы хотел еще уточнить - наследование есть парадигма объектно-ориентированного программирования, и относится к классам. Наследование позволяет либо унаследовать реализацию базового класса, либо, как минимум, интерфейс (совокупность сигнатур функций) объявленных в базовом классе. Наследование по отношению к функциям не является осмысленным употреблением термина.
sinobithug
0 / 0 / 0
Регистрация: 26.04.2014
Сообщений: 24
03.05.2014, 21:52  [ТС]     Наследование функции #6
В Классе evm задана переменная a.
Функция задана вне класса.
Почему-то в строке

C++
1
strncpy(a, Edit5->Text.c_str(), Text.Length());
не опознаётся переменная а.
cooller
 Аватар для cooller
564 / 532 / 120
Регистрация: 25.12.2013
Сообщений: 1,456
03.05.2014, 22:04     Наследование функции #7
sinobithug, потому что
Цитата Сообщение от sinobithug Посмотреть сообщение
Функция задана вне класса.
Tulosba
:)
Эксперт С++
4378 / 3221 / 297
Регистрация: 19.02.2013
Сообщений: 9,044
03.05.2014, 22:05     Наследование функции #8
Цитата Сообщение от sinobithug Посмотреть сообщение
не опознаётся переменная а.
Тут видимо путаница из-за "a" как поле класса (char*), и "а" как объект (evm).
Понятно, что для вызова strncpy() это должен быть аргумент char*. Но чтобы достучаться до поля класса, в функции, не являющейся членом этого класса, либо поле должно быть public, либо функция должна быть friend.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
03.05.2014, 22:49     Наследование функции
Еще ссылки по теме:

C++ Дружественные функции. Наследование. Перегрузка функции
Наследование и виртуальные функции C++
Наследование и виртуальные функции C++

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

Или воспользуйтесь поиском по форуму:
sinobithug
0 / 0 / 0
Регистрация: 26.04.2014
Сообщений: 24
03.05.2014, 22:49  [ТС]     Наследование функции #9
cooller
Преподаватель сказал что функция должна быть задана вне класса.
Yandex
Объявления
03.05.2014, 22:49     Наследование функции
Ответ Создать тему
Опции темы

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