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

Ошибка в книге extra qualification 'Critter::' on member 'operator=' - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Метод Гаусса для решения СЛАУ http://www.cyberforum.ru/cpp-beginners/thread1729525.html
Здравствуйте! У меня есть алгоритм решения СЛАУ методом Гаусса, но почему-то он не работает((( Я проверил промежуточные матрицы, все ОК! И корни правильно вычисляет (по правильным формулам т. е.), но... результат неверный. Можете посмотреть, пожалуйста? На самом деле это лаб. работа по методу аппроксимации методом наименьших квадратов. Но проблема именно в решении СЛАУ, содержащем коэффициенты...
C++ Error C4703: используется потенциально неинициализированная локальная переменная-указатель #include <iostream> #include <cstdlib> using namespace std; class BinarySearchTree { private: struct tree_node { tree_node* left; http://www.cyberforum.ru/cpp-beginners/thread1729522.html
C++ Индексация элементов массива
Всем привет! Есть следующий код: const double c = { // particle velocities {0, 0}, // zero {1, 0}, {0, 1}, // east, north {-1, 0}, {0, -1}, // west, south {1, 1}, {-1, 1}, // north-east, north-west {-1, -1}, {1, -1} // south-west, south-east };
C++ Недопустимый неполный тип, не могу найти ошибку
#include<iostream> #include<locale> #include<string> #include<iomanip> #include<fstream> void Poisk_1(), Poisk_2(), Poisk_3(), Poisk_4(); using namespace std;
C++ Что сделать, чтобы математический парсер заработал? http://www.cyberforum.ru/cpp-beginners/thread1729423.html
#include "stdafx.h" #ifndef PARSER_H_INCLUDED #define PARSER_H_INCLUDED #include <stdio.h> #include <string.h> #include <stdlib.h> #include <ctype.h> #include <math.h> #include <iostream>
C++ Создание потоков Нужно создать несколько потоков, используя библиотеку pthread. Программу написал и вроде все работает, но если запускать несколько раз подряд вылезает ошибка "Не удалось получить идентификатор подчинённого процесса: Параметр задан неверно." Подскажите в чем проблема. #include <pthread.h> #include <QVector> void* msg(void *n); int main() { const unsigned int MaxSize = 10; подробнее

Показать сообщение отдельно
sdima75
1 / 1 / 0
Регистрация: 12.09.2013
Сообщений: 27
08.05.2016, 10:49     Ошибка в книге extra qualification 'Critter::' on member 'operator='
Есть книга - Майкл Доутсон "Изучаем С++ через программирование игр".
В книге есть код который не работает.
Код тестировался на code::blocks и Qt creator (код не работает).
Код скаченный непосредственно с сайта, точно такой же как в книге.
Сам код (ошибка в 15 строке - C:\(путь до папки)\09\main.cpp|15|error: extra qualification 'Critter::' on member 'operator=' [-fpermissive]|)
Гугл не помог решить проблему.

Буду благодарен за Вашу помощь!

P.S. Помните что это раздел "Для начинающих", поэтому давайте без оскорблений и "поверхностных ответов".

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
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
//Heap Data Member
//Demonstrates an object with a dynamically allocated data member
 
#include <iostream>
#include <string>
 
using namespace std;
 
class Critter
{
public: 
    Critter(const string& name = "", int age = 0);  
    ~Critter();                   //destructor prototype   
    Critter(const Critter& c);    //copy constructor prototype
    Critter& Critter::operator=(const Critter& c);  //overloaded assignment op   <- ОШИБКА!
    void Greet() const; 
 
private:
    string* m_pName;
    int m_Age;
};
 
Critter::Critter(const string& name, int age)
{
    cout << "Constructor called\n";
    m_pName = new string(name);
    m_Age = age;  
}
 
Critter::~Critter()                        //destructor definition
{
    cout << "Destructor called\n";
    delete m_pName;
}
 
Critter::Critter(const Critter& c)        //copy constructor definition
{
    cout << "Copy Constructor called\n";
    m_pName = new string(*(c.m_pName));
    m_Age = c.m_Age;
}
 
Critter& Critter::operator=(const Critter& c)  //overloaded assignment op def
{
    cout << "Overloaded Assignment Operator called\n";
    if (this != &c)
    {
        delete m_pName;
        m_pName = new string(*(c.m_pName));
        m_Age = c.m_Age;
    }
    return *this;
}
 
void Critter::Greet() const
{
     cout << "I'm " << *m_pName << " and I'm " << m_Age << " years old. ";
     cout << "&m_pName: " << &m_pName << endl;
}
 
void testDestructor();
void testCopyConstructor(Critter aCopy);
void testAssignmentOp();
 
int main()
{
    testDestructor();
    cout << endl;
    
    Critter crit("Poochie", 5);
    crit.Greet();
    testCopyConstructor(crit);
    crit.Greet();
    cout << endl;
    
    testAssignmentOp();
 
    return 0;
}
 
void testDestructor()
{
    Critter toDestroy("Rover", 3);
    toDestroy.Greet();
}
 
void testCopyConstructor(Critter aCopy)  
{
    aCopy.Greet();
}
 
void testAssignmentOp()
{
    Critter crit1("crit1", 7);
    Critter crit2("crit2", 9);
    crit1 = crit2;
    crit1.Greet();  
    crit2.Greet();
    cout << endl;
        
    Critter crit3("crit", 11);
    crit3 = crit3;
    crit3.Greet();
}
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 02:03. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru