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

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

Войти
Регистрация
Восстановить пароль
 
Тангенс
1 / 1 / 0
Регистрация: 19.07.2013
Сообщений: 121
#1

Перегрузка бинарного оператора + - C++

22.06.2014, 11:47. Просмотров 477. Ответов 2
Метки нет (Все метки)

Выдает ошибку:
Ошибка 2 error LNK1120: неразрешенных внешних элементов: 1 Main\Debug\Main.exe 1
Ошибка 1 error LNK2019: ссылка на неразрешенный внешний символ "class Class __cdecl operator+(class Class &,class Class &)" (??H@YA?AVClass@@AAV0@0@Z) в функции _main Main\Main\Main.obj

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#pragma once
#include <iostream>
using namespace std;
 
class Class{
public:
    int x;
public:
    Class(void);
 
    void setX(int);
 
    Class friend operator+(Class&, Class&);
    friend ostream& operator<<(ostream&, Class&);
    
    ~Class(void);
};
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#include "Class.h"
 
Class::Class(void){}
 
Class operator+(const Class& c1, const Class& c2){
    Class a;
    a.x = c1.x + c2.x;
    return a;
}
 
void Class::setX(int _x){
    x = _x;
}
 
ostream& operator<<(ostream& o, Class& c){
    o<<"Сумма"<<c.x<<endl;
    return o;
}
 
Class::~Class(void){}
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#include <iostream>
#include "Class.h"
#include <conio.h>
 
using namespace std;
 
void main(){
 
    Class c1;
    Class c2;
    Class c3;
 
    c1.setX(2);
    c2.setX(2);
    c3.setX(0);
 
    c3 = c1+c2;
 
    cout<<c3;
 
    _getch();
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
22.06.2014, 11:47
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Перегрузка бинарного оператора + (C++):

Перегрузка бинарного оператора + - C++
Добрый вечер! В последнее время мне не удаётся перегрузить оператор +, чтобы он поэлементно складывал одномерные массивы двух классов. ...

Перегрузка бинарного оператора - C++
Хочу чтобы в моей программе знак &quot;%&quot; работал, как знак операция сложения действительных чисел &quot;+&quot;. Где ошибка #include &lt;cstdlib&gt; ...

Перегрузка бинарного оператора << в template классе - C++
Помогите пожалйста люди! не получается перегрузить оператор &gt;&gt; и &lt;&lt; в шаблонном классе выдает ошибку: error C2804: бинарный 'operator...

Определение класса, описывающего комплексное число. Перегрузка для него бинарного оператора "*" - C++
1. Определить класс, описывающий комплексное число. Для класса перегрузить бинарный оператор *. Написать программу, в которой используется...

Ошибка в использовании бинарного оператора - C++
Доброго времени суток коллеги. Знакомлюсь с языком C++ по книге Герберта Шилдта. Возник вопрос который в книге не написан. Не могу...

Перегрузка бинарного плюса - C++
Ребят, есть перегрузка плюса, написанная для стека. стек реализован в виде массива(это не столь важно) template &lt;class Type1&gt; ...

2
0x10
2482 / 1657 / 249
Регистрация: 24.11.2012
Сообщений: 4,126
22.06.2014, 11:50 #2
В объявлении потеряли const у аргументов.
ЗЫ friend после возвращаемого значения нормально парсится?
1
Issues
430 / 365 / 37
Регистрация: 06.08.2012
Сообщений: 961
22.06.2014, 11:52 #3
Цитата Сообщение от Тангенс Посмотреть сообщение
Class friend operator+(Class&, Class&);
Цитата Сообщение от Тангенс Посмотреть сообщение
Class operator+(const Class& c1, const Class& c2)
они не должны отличатся

Добавлено через 50 секунд

Не по теме:

Цитата Сообщение от 0x10 Посмотреть сообщение
Ы friend после возвращаемого значения нормально парсится?
в VS2012 да.

1
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
22.06.2014, 11:52
Привет! Вот еще темы с ответами:

Переопределение БИНАРНОГО оператора внутри класса - C++
Подскажите как правильно переопределить оператор + для сласса chislo. class chislo { int val; chislo chislo::operator +(const...

Перегрузка оператора = - C++
Скажи пожалуйста в каких случаях нужно перегружать оператор = ?

Перегрузка оператора [] - C++
Сделал простой аналог auto_ptr для дин. массива. Файл #ifndef ARRAY_PTR_GUARD #define ARRAY_PTR_GUARD template&lt; class Ty_ &gt; ...

Перегрузка оператора - C++
При вызове оператора, и если F1.x &lt;= 0, то пишет текст 'N' должно быть &gt; 0, после чего выводит расчеты по формуле. Но мне этого не...


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

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

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