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

объяснить функцию - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ помогите с решением зад. в с++ http://www.cyberforum.ru/cpp-beginners/thread363634.html
надо создать матрицу8*9,найти максимальные значения по строкам и столбцам,полученые значения упорядочить по убыванию.буду благодарен:)
C++ Добавление строк в масив строк Такой вот вопрос как в С++ сделать масив строк(строки статичной длинны), но чтобы можна было добавить ещё строки? http://www.cyberforum.ru/cpp-beginners/thread363631.html
C++ Класс "Трехмерный вектор"
Добрый день всем жителям форума! Помогите найти проблему в програме. Вроде и не сложная но я плохо понимаю в програмировании... Условие : Создать клас Вектор3Д который задаеться троицей координат, в котором должны быть реализированны функции : Инициализация, Ввод, Вывод, перевод в Стринг. Задачи программы : сумма и разница векторов, скалярное произведение векторов, умножение на скаляр,...
Создать программу вычисления сопротивления электрической цепи по известным значениям напряжения и силы тока C++
Здравствуйте, нужна помощь в создании программы (Создать программу вычисления сопротивления электрической цепи по известным значениям напряжения и силы тока). ОММЕТР Введите через пробел значения напряжения U и силы тока I и нажмите : ->12 2 Результат: 6 ОМ.Недавно начал увлекаться программированием, пока изучаю базу, помогите пожалуйста начинающему программисту!!
C++ Шифрование шифра Виженера http://www.cyberforum.ru/cpp-beginners/thread363610.html
Здравствуйте! При шифровании сообщения на русском языке шифром Виженера у меня возникла ошибка. ind2=abc.find(key); <--- вот в этой строке индекс уходит вообще в минус....так как почему-то сам ключ почему-то не на русском, как при вводе, а казюльками разными! В чём ошибка? // шифр Вижинера #include <iostream> #include <stdlib.h> #include <string> using namespace std;
C++ Задача по плюсам Конечно понимаю что немного несправедливо с точки зрения рейтингов, но с задачкой провозился 2 часа, так и не разобрался... Возможно не стоило такую тяжелую брать Еще можно упрекнуть, что не использовал функции, векора, и т.п. Это да, но я экономил на памяти и размере кода) Ошибка не синтаксическая, но ответ программы не соответствует ответу на задачу. Предположительно мог намудрить со знаками... подробнее

Показать сообщение отдельно
Сыроежка
Заблокирован
09.10.2011, 19:07     объяснить функцию
Цитата Сообщение от Nameless One Посмотреть сообщение
а в чем тогда тут проблема?
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#include<iostream>
 
class integer1
{
  int val;
    public:
  integer1(int v0 ) {val=v0;}
  friend integer1 INC(integer1);
  integer1 INC(integer1 scr) {scr.val++; return scr;}
 
};
 
int main()
{
 integer1 x(5),y=(0),z=(0);
 y=INC(x);
 z=INC(INC(x));
}
Код
-*- mode: compilation; default-directory: "/home/nameless/samples/cpp/" -*-
Compilation started at Mon Oct 10 01:48:30

make -j8
g++ -c -Wall -g -std=c++0x main.cc
g++ -o sample  main.o
main.o: In function `main':
/home/nameless/samples/cpp/main.cc:16: undefined reference to `INC(integer1)'
/home/nameless/samples/cpp/main.cc:17: undefined reference to `INC(integer1)'
/home/nameless/samples/cpp/main.cc:17: undefined reference to `INC(integer1)'
collect2: выполнение ld завершилось с кодом возврата 1
make: *** [sample] Ошибка 1

Compilation exited abnormally with code 2 at Mon Oct 10 01:48:31
и у gcc тоже баг, да?
Код
[nameless@desktop ~]$ gcc --version
gcc (GCC) 4.6.1 20110908 (Red Hat 4.6.1-9)
Вполне возможно, что у обоих компиляторов имеется данный баг. Здесь проблема связана с тем, что в классе одновременно присутствует объявление и определение дружественной функции. Скорей всего компилятор gcc разделяет эти две функции. То есть проблема заключается в том, что функция, впервые объявленная в виде дружественной в классе, имеет внешнее связывание. Тогда как функции, являющиеся встраиваемыми, имеют внутреннее связывание. Когда одно и тоже имя определено как имеющее внешнее связывание и внутреннее связывание, то поведение не определенное.
Попробуйте убрать из класса объявление функцуии и оставьте только определение и прокомпилируйте с помощью gcc. Мне самому будет интересен результат.

Чтобы сомнений не было, я процитирую стандарт, раздел 11.4 "Friends" #5. "A function can be defined in a friend declaration of a class if and only if the class is a non-local class"
 
Текущее время: 22:35. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru