![]() |
1. Пользуйтесь тегами кода. - [code] ... [/code]
2. Точно указывайте язык, название и версию компилятора (интерпретатора).
3. Название темы должно быть информативным.
В описании темы указываем язык!!!
![]() ![]() |
![]() |
compiler |
![]()
Сообщение
#41
|
Человек ![]() ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 1 050 Пол: Мужской Реальное имя: Станислав Репутация: ![]() ![]() ![]() |
Тут точно все, как надо? Может I не нужно? точно.. спасибо..Кстати, обрати внимание на предупреждение... Лучше приводить результат к типу int явным образом... а вот тут не понял( ты с какими ключами компилируешь?Вопрос #7.1 это нормально вызывать конструктор для i несколько раз или этого надо избегать? -------------------- Спасибо!
Удачи! |
volvo |
![]()
Сообщение
#42
|
Гость ![]() |
Цитата а вот тут не понял( ты с какими ключами компилируешь? С какими бы ключами ты не компилировал, попытка сделать:vector<int> triangular(number_el); //ряд Треугольных чисел
for(int i(0); i<number_el; ++i)
triangular[ i ]=0.5*(i*i+3)+1; // int <- double
на уважающем себя компиляторе приведет к Warning-у... Я компилирую с -Wall (причем всегда...), GCC 3.4.5 + Code::Blocks Цитата это нормально вызывать конструктор для i несколько раз или этого надо избегать? Избегать за счет предварительного описания переменной что-ли? Я все-таки предпочитаю делать время жизни переменной минимальным... Кстати, почему именно такая форма? Вот так не проще для восприятия:for(int i = 0; i < number_el; ++i) {
...
?Сообщение отредактировано: volvo - 14.06.2008 18:44 |
compiler |
![]()
Сообщение
#43
|
Человек ![]() ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 1 050 Пол: Мужской Реальное имя: Станислав Репутация: ![]() ![]() ![]() |
С какими бы ключами ты не компилировал, попытка сделать... на уважающем себя компиляторе приведет к Warning-у... хм.. мой g++ (GCC) 4.2.3 (Ubuntu 4.2.3-2ubuntu7) ничего не говорит, даже с -Wall((Избегать за счет предварительного описания переменной что-ли? да.. должно, наверно, экомится время на конструктор/деструктор.. или оно ничтожно? Вот так не проще для восприятия.. Лично мне все равно)) Ну, а потом, этот способ остался для совместимости с Си, насколько мне известно..зы в программе есть еще ошибки по заполнению ряда, но не в них сейчас суть) Сообщение отредактировано: compiler - 14.06.2008 19:13 -------------------- Спасибо!
Удачи! |
volvo |
![]()
Сообщение
#44
|
Гость ![]() |
Цитата да.. должно, наверно, экомится время на конструктор/деструктор.. или оно ничтожно? Можешь объяснить, с чего ты взял, что i = 0 ("оператор =") будет выполняться быстрее, чем конструктор для POD-типа, которым является int? ![]() Цитата Ну, а потом, этот способ остался для совместимости с Си, насколько мне известно.. Какой именно? Тот, которым пользуешься ты? Стандарт С++ открой, и посчитай, сколько там таких способов... А сколько - присваивания ![]() |
compiler |
![]()
Сообщение
#45
|
Человек ![]() ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 1 050 Пол: Мужской Реальное имя: Станислав Репутация: ![]() ![]() ![]() |
Можешь объяснить, с чего ты взял, что i = 0 ("оператор =") будет выполняться быстрее, чем конструктор для POD-типа, которым является int? я имел немножко другое, может лучше один раз объявить i, а потом один раз вызвать деструктор?![]() Какой именно? Тот, которым пользуешься ты? Стандарт С++ открой, и посчитай, сколько там таких способов... А сколько - присваивания насчет наследования Си, я руководствывался Липпманом*(это конечно не стандарт))). Там же несколько "преимуществ" нововведенного способа. Хотя сам Липпман, в последующих листингах пользуется оператором присваивания![]() ![]() *-Стэнли Липпман "Основы программирования на С++". Издательство "Вильямс" 2002год. глава 1.2 (страница 26, 6-я строка) Цитата Использования для инициализации оператора присваивания (=) унаследовано от языка С. -------------------- Спасибо!
Удачи! |
volvo |
![]()
Сообщение
#46
|
Гость ![]() |
Цитата я имел немножко другое, может лучше один раз объявить i, а потом один раз вызвать деструктор? Еще раз: в каждом цикле (в разделе инициализации, до первой точки с запятой оператора for) для объявленного тобой где-то сверху i будет вызываться "operator ="? Будет, иначе ты не присвоишь i правильное стартовое значение... Вопрос: кто тебе сказал, что для int конструктор будет выполняться медленнее, чем "operator ="? |
compiler |
![]()
Сообщение
#47
|
Человек ![]() ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 1 050 Пол: Мужской Реальное имя: Станислав Репутация: ![]() ![]() ![]() |
.. Вопрос: кто тебе сказал, что для int конструктор будет выполняться медленнее, чем "operator ="? хм.. не знаю)а как вообще можно засеч время выполнения программмы(урывка) на с++ ? (это вопрос #8 ) -------------------- Спасибо!
Удачи! |
volvo |
![]()
Сообщение
#48
|
Гость ![]() |
Цитата как вообще можно засеч время выполнения программмы(урывка) Попробуй: #include <ctime>
...
clock_t t_start = clock();
// здесь идет сам код ...
clock_t t_finish = clock();
cout << "Время выполнения = " <<
(static_cast<float>(t_finish - t_start)/CLOCKS_PER_SEC) << " секунд" << endl;
(можешь не делить на CLOCKS_PER_SEC, получишь время в тиках процессора)Сообщение отредактировано: volvo - 15.06.2008 12:45 |
compiler |
![]()
Сообщение
#49
|
Человек ![]() ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 1 050 Пол: Мужской Реальное имя: Станислав Репутация: ![]() ![]() ![]() |
-------------------- Спасибо!
Удачи! |
compiler |
![]() ![]()
Сообщение
#50
|
Человек ![]() ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 1 050 Пол: Мужской Реальное имя: Станислав Репутация: ![]() ![]() ![]() |
прошу прощения.. дурацкая ошибка... назвал счетчик cout..
Сообщение отредактировано: compiler - 17.06.2008 15:06 -------------------- Спасибо!
Удачи! |
volvo |
![]()
Сообщение
#51
|
Гость ![]() |
Цитата почему все так?( Потому что: int cout(0); // <--- cout здесь - это int
...
cout << endl << "Вектор:" << endl; // Что бы ЭТО значило ???
|
compiler |
![]()
Сообщение
#52
|
Человек ![]() ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 1 050 Пол: Мужской Реальное имя: Станислав Репутация: ![]() ![]() ![]() |
Потому что: спасибо, дкрацкое название выбрал дя переменной.. может буду теперь писать std::cout)-------------------- Спасибо!
Удачи! |
Вофka |
![]()
Сообщение
#53
|
Группа: Пользователи Сообщений: 2 Пол: Мужской Репутация: ![]() ![]() ![]() |
c++
Помогите пожалуйсто! Нужно решение двух задач для зачета: 1Матрица: Получить целочисленную квадратную матрицу порядка 7, элементами которой являются числа 1, 2, ..., n, расположенные в ней по спирали. 2Рекурсия: Пусть x(1)=y(1)=1;x(i)=x(i-1)+y(i-1)/i^2; y(i)=y(i-1)+x(i-1)/i,i=2,3,... Получить x(n),y(m), если n, m -натуральные. Зарание спасибо |
renesko1 |
![]()
Сообщение
#54
|
![]() поиск ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 346 Пол: Мужской Реальное имя: nir Репутация: ![]() ![]() ![]() |
вопрос № n ;
Как подключить свой модуль к програме ? -------------------- typedef void Śūnyatā ;
|
klem4 |
![]()
Сообщение
#55
|
![]() Perl. Just code it! ![]() ![]() ![]() ![]() ![]() ![]() Группа: Модераторы Сообщений: 4 100 Пол: Мужской Реальное имя: Андрей Репутация: ![]() ![]() ![]() |
файл положи в папку с основным cpp файлом и
#include "myfile.h";
например ... Сообщение отредактировано: klem4 - 29.06.2008 21:08 -------------------- perl -e 'print for (map{chr(hex)}("4861707079204E6577205965617221"=~/(.{2})/g)), "\n";'
|
renesko1 |
![]()
Сообщение
#56
|
![]() поиск ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 346 Пол: Мужской Реальное имя: nir Репутация: ![]() ![]() ![]() |
У меня вопрос, как сделать это с шаблонам ?
Что бы качестве параметров класс принимал любой класс, где определена операция вывода. Где идет проверка времени компиляции, что инстанцируемый класс имеет необходимую функцию ( чтоб избежать непонятных сообщений компилятора при попытке иснтанцировать левый класс) . Мне не нужен код, а какой нибудь пример на заданную тему ...
#include <string>
#include <iostream>
#include <fstream>
#include<memory>
using namespace std ;
//******************************************************************
class base {
public :
virtual void print () = 0 ;
} ;
//***************************************************************
class printmonitor : public base {
string outString ;
public :
printmonitor (const string& userString) {outString = userString;}
void print () {cout << outString ;}
~printmonitor () ;
} ;
//***************************************************************
class printinfile : public base {
string outString ;
public :
printinfile (const string& userString ) {outString = userString ;}
void print () ;
~printinfile() ;
} ;
//***************************************************************
void printinfile::print () {
ofstream out("outfile.txt",ios::out) ;
if(!out) {cout <<"Cannot open file test for writing " << endl ; }
out << outString ;
out.close () ;
}
//***************************************************************
int main()
{
//pprintmonitor = new printmonitor("test my program 1");
//pprintinfile = new printinfile("test my program 2");
auto_ptr<base> pprintmonitor (new printmonitor("test my program 1")) ;
auto_ptr<base> pprintinfile (new printinfile("test my program 2")) ;
pprintmonitor->print();
pprintinfile->print();
//delete pprintmonitor;
//delete pprintinfile ;
return 0 ;
}
Сообщение отредактировано: renesko1 - 12.07.2008 15:16 -------------------- typedef void Śūnyatā ;
|
renesko1 |
![]()
Сообщение
#57
|
![]() поиск ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 346 Пол: Мужской Реальное имя: nir Репутация: ![]() ![]() ![]() |
Ладно более конкретный вопрос..
"класс имеет необходимую функцию " - те функцию print() или перегруженный оператор << ? "идет проверка времени компиляции" - как она осуществляется , ну или что это такое ? -------------------- typedef void Śūnyatā ;
|
volvo |
![]()
Сообщение
#58
|
Гость ![]() |
![]() #include <iostream>
// для VC придется добавить еще и <assert.h>
using namespace std;
class myA {
public:
void Print() {
cout << "first Print()" << endl;
}
};
class myB {
public:
void Print() {
cout << "second Print()" << endl;
}
};
class myC {
public:
void Oops() {
;
}
};
template<class T>
class TBase
{
bool ValidateRequirements()
{
void (T::*test)() = &T::Print;
test;
return true;
}
public:
~TBase()
{
assert( ValidateRequirements() );
}
// ...
};
int main() {
TBase<myA> first; // Ok
TBase<myB> second; // Ok
TBase<myC> third; // ha-ha : )
return 0;
}
Вот такое сообщение: Цитата error: `Print' is not a member of `myC' достаточно информативно? Сообщение отредактировано: volvo - 12.07.2008 16:33 |
renesko1 |
![]()
Сообщение
#59
|
![]() поиск ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 346 Пол: Мужской Реальное имя: nir Репутация: ![]() ![]() ![]() |
![]() -------------------- typedef void Śūnyatā ;
|
renesko1 |
![]()
Сообщение
#60
|
![]() поиск ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 346 Пол: Мужской Реальное имя: nir Репутация: ![]() ![]() ![]() |
mingw.
У меня вопрос: есть ли встроенная графическая библиотека, мне достаточно вывода линий, кругоd и тд, те. примерно как модуль graph в pascale. Сообщение отредактировано: renesko1 - 23.08.2008 17:50 -------------------- typedef void Śūnyatā ;
|
![]() ![]() |
![]() |
Текстовая версия | 18.07.2025 0:23 |