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

Наследование и шаблоны - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ В прямоугольной матрице NxK переставить столбцы в обратном порядке http://www.cyberforum.ru/cpp-beginners/thread657642.html
проверьте прогу плз - В прямоугольной матрице NxK переставить столбцы в обратном порядке #include<stdio.h> #define N 3 #define K 8 int main(){ int mas={}; int mas t={0}; int i,j,s,t=0; for (i=0;i<K;i++)
C++ Определить количество байтов, которые занимают в памяти переменные данных типов Здравствуйте. Помогите пожалуйста с лабораторной... В языке С++ полный ноль, ничего не понимаю. Вот сами задания из лабы: 1. Опишите переменные всех типов, приведенных в таблице 2. Определите количество байтов, которые занимают в памяти переменные этих типов. Результат выведите на экран в виде sizeof (int)=2 sizeof (long)=4… Заранее спасибо за помощь.)) http://www.cyberforum.ru/cpp-beginners/thread657631.html
Указатели в массиве C++
В книжке нет описания к данному коду и мне немного не понятно в некоторых моментах: 1). while (*p) { (не понятно какое условие понимается под *p) 2). while(*p!=' ' && *p) { (*p!= ' ' - это понятно, что если будет пробел, а вот && *p - это что за условие?) Ответьте пожалуйста на мои вопросы и напишите краткое описание того, как работает программа, у меня в голове немного не укладывается что заем...
C++ Лаба по информатике
Завтра сдавать лабораторную, а я в программировании на Си++ практически ноль. Было всего пару лекций на его изучение. Задача: Составить программу нахождения периметра правильного n-угольника, описанного около окружности радиуса R. (подробное описание заданий во вложении) Нашел формулу, по которой высчитывается периметр правильного n-угольника p=2*n*r*sin(3.14/n) n-кол-во сторон, r-радиус...
C++ Локальные переменные в функции и её аргумент http://www.cyberforum.ru/cpp-beginners/thread657594.html
Привет! Пишу функцию перевода десятичного числа в текст (не обсуждайте зачем и правильно ли я делаю) Суть такова, начало функции: void printFixedPoint(char* buffer, float data, int sign){ float fval, dfval;<<вход: data=55.0 int ival; dfval=10.0; // <<data=55.0 while (fval>=1.0) { ival=9;
C++ Пифагоровы числа Помогите составить задачу, как на паскале приблизительно знаю. Задача: Найти 20 первых Пифагоровых чисел, k,m,n принадлежит N k^2+m^2=n^2 подробнее

Показать сообщение отдельно
kotleta
42 / 42 / 11
Регистрация: 13.09.2012
Сообщений: 196

Наследование и шаблоны - C++

25.09.2012, 11:21. Просмотров 397. Ответов 5
Метки (Все метки)

Не понимаю почему выдается ошибки, переменные а, b не объявлены в данном контексте (внутри функции f)
Сейчас почитал прату, и страуструпа, и не нашел объяснений
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
template <typename T>
class A
{
  public:
 
  int a;
  int b;
};
 
template <typename T> class B: public A <T>
{
 public:
 
  void f()
  {
   a=3; // error: a was not declared in this scope
   b=4;
  }
};

но если

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
class A
{
 public:
  int a, b;
};
 
class B: A
{
 public:
 
  void f()
 {
  a=3;
  b=4; 
 }
};
работает

Т.е. если наследовании с шаблонами, то нет доступа к членам a,b
а если просто с классами, т.е. доступ из производных

update

ну и сейчас интуитивно попробовал сделать
C++
1
2
a <T> :: a = 3;
a <T> :: b = 4;
заработало

спрашивается почему?
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru