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

Перегрузка оератора = в шаблоне - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ программка по шаблонам http://www.cyberforum.ru/cpp-beginners/thread800004.html
Пытаюсь конвертировать контайнер класс в шаблон. Укажите, пожалуйста, на ошибки в программе: Header file "sequence4.h" #ifndef MAIN_SAVITCH_SEQUENCE3_H #define MAIN_SAVITCH_SEQUENCE3_H...
C++ Шаблон функции, ошибка "unresolved external symbol" Ошибки Error 1 error LNK2019: unresolved external symbol "int __cdecl mas(int *,int)" (?mas@@YAHPAHH@Z) referenced in function _main D:\учеба\2sem c++\lab4z3\lab4z3\3.obj Error 2 error LNK2019:... http://www.cyberforum.ru/cpp-beginners/thread799999.html
C++ Функция с переменным числом параметров, как узнать кличество переданных параметров?
Добрый вечер, можно не использовать int n, а каким то другим способом узнать количество переданных аргументов в функцию и адрес? int suma (int n, ...) { int *ptr=&n; int s=0; for (int...
программа по непонятным мне причинам работает неверно C++
#include <cstdio> #include <iostream> #include <clocale> using namespace std; int main() { setlocale(LC_ALL, "Russian"); char s;
C++ Шаблоны и статик http://www.cyberforum.ru/cpp-beginners/thread799988.html
Добрый вечер. Вот кусочек кода, почему то переменная dx постоянно обнуляется хотя она static. В чем проблема? template <class T, int n> void init (T (&arr) ) { static int dx; dx++; for (int...
C++ Строка: Удалить лишние пробелы между словами Задание: нужно удалить лишние пробелы между словами (если один пробел, то его нужно оставить). # include <conio.h> # include <cctype> # include <iostream> using namespace std; void... подробнее

Показать сообщение отдельно
xtorne21st
интересующийся
304 / 275 / 19
Регистрация: 25.09.2010
Сообщений: 1,056

Перегрузка оератора = в шаблоне - C++

04.03.2013, 02:29. Просмотров 339. Ответов 2
Метки (Все метки)

Есть шаблон:
C++
1
2
template <typename V>
class Vector;
и есть функця:
C++
1
V operator=(const Vector &);
пробую перегрузить:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
template <typename V>
V Vector<V>::operator=(const Vector& rhs)
{
    // fix
    if (this == &rhs)
        return *this;
    if (vec_ptr)
        delete [] vec_ptr;
    vec_size = rhs.size();
    vec_ptr = new V[vec_size];
    cpy_from_to(vec_ptr, rhs.vec_ptr, vec_size);
    return *this;
}
Bash
1
2
3
4
5
6
7
ilyuha21st@coldshoot ~/projects $ g++ -Wall -W -pedantic main.cpp -o prog
main.cpp: In member function ‘V Vector<V>::operator=(const Vector<V>&) [with V = char, Vector<V> = Vector<char>]’:
main.cpp:172:16:   instantiated from here
main.cpp:98:17: error: cannot convert ‘Vector<char>’ to ‘char’ in return
main.cpp:104:13: error: cannot convert ‘Vector<char>’ to ‘char’ in return
main.cpp:105:1: warning: control reaches end of non-void function [-Wreturn-type]
ilyuha21st@coldshoot ~/projects $
Если перегружать через функцию возращающую void тогда всё ок, но ведь смысл тогда от присвоения теряется. Подскажите пожалуйста, как правильно нужно.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.