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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
 
RayPas
2 / 0 / 0
Регистрация: 18.01.2013
Сообщений: 370
#1

Перегрузка - подчеркивает что ошибка здесь - a.strb - C++

26.02.2014, 18:43. Просмотров 712. Ответов 21
Метки нет (Все метки)

C++
1
2
3
4
Texts Texts :: operator + (const Texts &a) {
    Texts tmp;
    tmp.str = strh + a.strb;
}
подчеркивает что ошибка здесь - a.strb


не могу понять в чем дело, strh и strb это объекты производных классов
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
26.02.2014, 18:43
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Перегрузка - подчеркивает что ошибка здесь - a.strb (C++):

Что такое перегрузка оператора? Что у меня в коде за ошибка? - C++
Что же я написал?? Что оно не компилится? Что значит error C2275: Superclass: недопустимое использование этого типа в качестве выражения ...

Ошибка подчеркивает this. - C++
Пишу код. Классы. Ошибка подчеркивает this . Подскажите как лучше ? #include<iostream> #include<Windows.h> #include <string> ...

else подчеркивает и пишет что требуется оператор - C++
else почему подчеркивает и пишет что требуется оператор

подчеркивает запятую после 50, что это может быть? - C++
#include <stdio.h> #include <stdlib.h> #include <math.h> #include <conio.h> #include "graphics.h" void main(void) { int...

Слишком много аргументов в вызове функции, подчеркивает то что красным - C++
KVITANSIA.H class KVITANTSIA { public: int number; // номер int day, month, year; // дата float sum; // сума public:

Строку с методом подчеркивает и говорит о том, что не переданы аргументы. Как их передать в метод? - C++
метод таков: void Fraction :: Control(int &denominator, int &numerator) { if (denominator == 0) {cout << "error!try again!"<<endl;} ...

21
gray_fox
What a waste!
1521 / 1226 / 70
Регистрация: 21.04.2012
Сообщений: 2,565
Завершенные тесты: 3
26.02.2014, 20:42 #16
RayPas, не понял, что за "фасад", но думаю нужна двойная дисперечизация: можно реализовать с помощью одного публичного виртального метода и двух защищённых, примерно:
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
struct hex_string;
struct bit_string;
 
struct string {
 
   virtual void concat(string const& other) = 0;
 
protected:
   virtual void concat_to(hex_string & other) const = 0;
   virtual void concat_to(bit_string & other) const = 0;
 
   // ...
};
 
struct hex_string : string {
 
   virtual void concat(string const& other) {
      other.concat_to(*this);
   }
 
protected:
   virtual void concat_to(hex_string & other) const {
      // concat this hex_string to other hex_string
   }
 
   virtual void concat_to(bit_string & other) const {
      // concat this hex_string to other bit_string
   }
 
   // ...
};
 
struct bit_string : string {
   
   virtual void concat(string const& other) {
      other.concat_to(*this);
   }
 
protected:
   virtual void concat_to(hex_string & other) const {
      // concat this bit_string to other hex_string
   }
 
   virtual void concat_to(bit_string & other) const {
      // concat this bit_string to other bit_string
   }
 
   // ...
};
1
RayPas
2 / 0 / 0
Регистрация: 18.01.2013
Сообщений: 370
27.02.2014, 00:24  [ТС] #17
DrOffset, я вас понял...кажется

Добавлено через 3 часа 39 минут
DrOffset, не, чет не доходит, не работает...я так понял перегрузить один класс , второй класс, а затем в фасаде перегрузить операцию типов hex и bin...но не получается
0
DrOffset
7351 / 4451 / 1009
Регистрация: 30.01.2014
Сообщений: 7,292
27.02.2014, 00:26 #18
Цитата Сообщение от RayPas Посмотреть сообщение
не, чет не доходит, не работает
Я бы рад помочь, но без кода остается только гадать...
0
RayPas
2 / 0 / 0
Регистрация: 18.01.2013
Сообщений: 370
27.02.2014, 17:14  [ТС] #19
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
[nick]DrOffset[/nick], окай
 
#pragma once
#include "C_String.h"
 
using Program :: C_String;
 
class C_StringHex : public C_String
{   int lengthHex;
    char* ptrH;
public:
    C_StringHex(void);
    void setC_String();
    int HexInvert(char* p);
    ~C_StringHex() {}
};
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
#pragma once
#include "C_String.h"
 
using Program :: C_String;
 
class C_StringBit : public C_String
{   int lengthBit;
    char* ptrB;
public:
    C_StringBit(void);
    void setC_String();
    int BitInvert(char* p);
    ~C_StringBit() {}
};
вот два класса, строки которых(уже преобразованные в типы int) надо сложить в фасадном классе
0
Kuzia domovenok
1892 / 1747 / 119
Регистрация: 25.03.2012
Сообщений: 5,936
Записей в блоге: 1
27.02.2014, 17:36 #20
Автор, ты бредишь! Напиши просто класс "строка" и не выпендривайся с наследованием! А что такое "фасадный класс" тут никто не поймёт.
0
RayPas
2 / 0 / 0
Регистрация: 18.01.2013
Сообщений: 370
27.02.2014, 17:40  [ТС] #21
Kuzia domovenok, это мое задание, так что бредишь тут только ты
0
Kuzia domovenok
1892 / 1747 / 119
Регистрация: 25.03.2012
Сообщений: 5,936
Записей в блоге: 1
27.02.2014, 18:15 #22
RayPas, задание своё ты так и не выложил, код программы целиком тоже - лишь частями показываешь, где взял задание и кто тебя научил таким терминам вроде "фасадный класс" не отвечаешь...
Внимание вопрос: Чего ты боишься и секретничаешь? Ядерную бомбу что ли изобретаешь?
0
27.02.2014, 18:15
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
27.02.2014, 18:15
Привет! Вот еще темы с ответами:

скажите пожалуйста, что означает здесь b. ,это какия-либо функция или что? - C++
скажите пожалуйста, что означает здесь b. ,это какия-либо функция или что? //анализируем все клетки доски for(int i = 0; i < 8;...

Что здесь не так - C++
Я хотел сделать программу для сложения двух чисел. после ввода второго слагаемого окно пропадает, я не могу найти свою ошибку Помогите...

Что здесь не так? - C++
// xc.cpp: определяет точку входа для консольного приложения. // #include "stdafx.h" // Таблица функции #include<math.h> ...

Что здесь не правильно? - C++
#include <iosteam.h> int main(){ float x = 1; cout << "sizeof (float) :" << sizeof (float); cout << "\nsizeof x :" <<...


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

Или воспользуйтесь поиском по форуму:
22
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru