Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.68/25: Рейтинг темы: голосов - 25, средняя оценка - 4.68
2 / 2 / 1
Регистрация: 02.12.2016
Сообщений: 133
1

Ошибка "не найден оператор, принимающий правый операнд типа "const std::string" "

25.05.2018, 18:45. Показов 4992. Ответов 4
Метки нет (Все метки)

Привет. Подчеркивает Name. Как можно обратиться к public string из класса наследника?

1) Класс Dog должен являться наследником класса Animal.
2) Конструктор класса Dog должен принимать параметр типа string и инициализировать им поле Name в классе Animal.

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#include <iostream>
 
using namespace std;
 
class Animal {
public:
    // ваш код
    Animal(const string &t) : Name(t) {}
    const string Name;
};
 
 
class Dog: public Animal {
public:
    Dog() : Animal("Dog")
    {}
 
    void Bark () {
        cout << Name << " barks: woof!" << endl;       <--- ------ тут
    }
};
0

Помощь в написании контрольных, курсовых и дипломных работ здесь.

Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
25.05.2018, 18:45
Ответы с готовыми решениями:

Error C2679: бинарный "<<": не найден оператор, принимающий правый операнд типа "std::string" (или приемлемое
эмулятор работы банкомата Например #include &quot;stdafx.h&quot; #include &lt;iostream&gt; #include...

бинарный "<<": не найден оператор, принимающий правый операнд типа "const ElementType"
С массивом все работает хорошо, а с вектором выдает эту ошибку. #include &lt;iostream&gt; #include...

Шаблоны класса:Матрица. Ошибка бинарный "=": не найден оператор, принимающий правый операнд типа "Matr<T>"
Выдает ошибку &quot;бинарный &quot;=&quot;: не найден оператор, принимающий правый операнд типа &quot;Matr&lt;T&gt;&quot; (или...

бинарный ">>": не найден оператор, принимающий правый операнд типа "int [4]"
Подскажите, пожалуйста в чем ошибка!!! #include &quot;pch.h&quot; #include &lt;iostream&gt; #include &lt;conio.h&gt;...

4
Нарушитель
1488 / 1290 / 485
Регистрация: 16.08.2014
Сообщений: 5,418
Записей в блоге: 1
25.05.2018, 19:00 2
MarkSD, так ты же обратился

Добавлено через 2 минуты
#include <string> видимо добавить нужно тебе
0
2 / 2 / 1
Регистрация: 02.12.2016
Сообщений: 133
25.05.2018, 19:02  [ТС] 3
1>c:\users\777\source\repos\project1\project1\source.cpp(19) : error C2679: бинарный "<<": не найден оператор, принимающий правый операнд типа "const std::string" (или приемлемое преобразование отсутствует)
1>c:\users\777\source\repos\project1\project1\source.cpp(19) : note: при попытке сопоставить список аргументов "(std::ostream, const std::string)"
Не удается обратиться

Добавлено через 28 секунд
_stanislav, спасибо. Бредовая ошибка
0
78 / 79 / 48
Регистрация: 12.10.2013
Сообщений: 1,067
25.05.2018, 21:50 4
MarkSD,прокомментируйте пожалуйста эту фразу.Плавный переход с C# на C++ у меня пока не получается.

C++
1
Animal(const string &t) : Name(t) {}
Вот как бы просто всё - наследование- выглядело бы ,и компилировалось на C#!!!

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
namespace OOP1
{
    class Animal
    {
       public string Name;
        public Animal(string name)
        {
            Name = name;
        }
        public void ShowName()
        {
            Console.Write("ИМЯ :"+Name);
            Console.ReadKey();
        }
    }
    class Dog : Animal
    {
       public Dog(string st1) : base("") { }
       /* public void ShowName()
        {
            Console.Write(Name);
            Console.ReadKey();
        }
        */
    }
    class Program
    {
        static void Main(string[] args)
        {
            Animal dog_ = new Animal("СОБАКА");
            Dog dog = new Dog("");
            dog_.ShowName();
        }
    }
}
0
78 / 79 / 48
Регистрация: 12.10.2013
Сообщений: 1,067
25.05.2018, 21:57 5
На картинке результат компиляции C# :
0
Миниатюры
Ошибка "не найден оператор, принимающий правый операнд типа "const std::string" "  
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
25.05.2018, 21:57

C2678 бинарный ">>": не найден оператор, принимающий левый операнд типа "std::ostream"
Код: #include &lt;iostream&gt; #include &lt;memory&gt; #include &lt;typeinfo&gt; #include &lt;ctime&gt; #include...

Error C2678: бинарный "<<": не найден оператор, принимающий левый операнд типа "std::ifstream"
Собственно, текст ошибки приведен в названии темы. Сам код: #include &quot;stdafx.h&quot; #include...

Error C2678: бинарный ">>": не найден оператор, принимающий левый операнд типа "std::istream"
Вот ошибка 1&gt;------ Построение начато: проект: ыпошряоям, Конфигурация: Debug Win32 ------ 1&gt; ...

Бинарный ">>": не найден оператор, принимающий левый операнд типа "std::istream"
Подскажите, пожалуйста, как решить проблему. Хочу перегрузить оператор ввода, но никак не пойму, в...

Ошибка : бинарный "<<": не найден оператор, принимающий правый операнд типа point
В задаче нужно найти две наиболее удаленные друг от друга очки. выдает следующую ошибку: error...

error C2678: бинарный ">>": не найден оператор, принимающий левый операнд типа "std::basic_istream<_Elem,_Traits>"
Нужно из файла скачать информацию в объект. Почему у меня не получается? #include &lt;vector&gt;...


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

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

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