Передать параметр при объявлении
От: Vovik1982 Россия  
Дата: 15.03.06 15:55
Оценка:
Есть примерно такая конструкция:

pair<int, char*>prElem;

Я хочу чтобы при ОБЪЯВЛЕНИИ была возможность задать значение для char*.

Как это сделать?
Re: Передать параметр при объявлении
От: Zigmar Израиль  
Дата: 15.03.06 16:09
Оценка:
Здравствуйте, Vovik1982, Вы писали:

V>Есть примерно такая конструкция:

V>pair<int, char*>prElem;
V>Я хочу чтобы при ОБЪЯВЛЕНИИ была возможность задать значение для char*.
V>Как это сделать?

Как всегда в таких случаях — передать соотвествующие параметры в конструктор
    char* someStr;
    //...
    std::pair<int, char*> prElem(77,someStr);
"To protect people you must slay people. To let people live you must let people die. This is the true teaching of the sword."
-Seijuro Hiko, "Rurouni Kensin"
Re: Передать параметр при объявлении
От: Alxndr Германия http://www.google.com/profiles/alexander.poluektov#buzz
Дата: 15.03.06 16:11
Оценка:
Здравствуйте, Vovik1982, Вы писали:

V>Есть примерно такая конструкция:


V>pair<int, char*>prElem;


V>Я хочу чтобы при ОБЪЯВЛЕНИИ была возможность задать значение для char*.


V>Как это сделать?


std::pair<int, char*> prElem(0, "tak ne prokatit?");
Re[2]: Передать параметр при объявлении
От: Vovik1982 Россия  
Дата: 15.03.06 16:12
Оценка:
проблема:

вместо инта у меня вектор листов. Поэтому мне надо передать по умолчанию только один параметр.
Re[2]: Передать параметр при объявлении
От: Vovik1982 Россия  
Дата: 15.03.06 16:13
Оценка:
И, плюс ко всему, объявление у меня в заголовочном файле.
Re: Передать параметр при объявлении
От: Vovik1982 Россия  
Дата: 15.03.06 16:16
Оценка:
Здравствуйте, Vovik1982, Вы писали:

V>Есть примерно такая конструкция:


V>pair<int, char*>prElem;


V>Я хочу чтобы при ОБЪЯВЛЕНИИ была возможность задать значение для char*.


V>Как это сделать?


Надо получить что-то вроде

pair<int, "default">prElem;
Re[3]: Передать параметр при объявлении
От: Alxndr Германия http://www.google.com/profiles/alexander.poluektov#buzz
Дата: 15.03.06 16:26
Оценка:
Здравствуйте, Vovik1982, Вы писали:

V>И, плюс ко всему, объявление у меня в заголовочном файле.


Если этот заголовочный файл подключается больше чем к одному cpp, то это нарушение ODR.
Re[3]: Передать параметр при объявлении
От: Alxndr Германия http://www.google.com/profiles/alexander.poluektov#buzz
Дата: 15.03.06 16:30
Оценка:
Здравствуйте, Vovik1982, Вы писали:

V>вместо инта у меня вектор листов. Поэтому мне надо передать по умолчанию только один параметр.


Просто заранее сделай где-то это вектор листов:

using namespace std;

vector<list<int> > veclist(1000);
// ...
pair<vector<list<int> >, char*> prElem(veclist, "tak toghe ne podhodit?");
Re[2]: Передать параметр при объявлении
От: Андрей Тарасевич Беларусь  
Дата: 15.03.06 18:06
Оценка: :)
Здравствуйте, Vovik1982, Вы писали:

V>>Как это сделать?


V>Надо получить что-то вроде


V>pair<int, "default">prElem;


pair<int, const char*> prElem(int(), "default");


Вместо 'int' можно, при желании, подставить любой другой умолчательно конструируемый тип:

pair<vector<int>, const char*> prElem(vector<int>(), "default");
pair<VPupkinStruct, const char*> prElem(VPupkinStruct(), "default");
Best regards,
Андрей Тарасевич
Re[3]: Передать параметр при объявлении
От: Андрей Тарасевич Беларусь  
Дата: 15.03.06 18:07
Оценка:
Здравствуйте, Андрей Тарасевич, Вы писали:

V>>>Как это сделать?


V>>Надо получить что-то вроде


V>>pair<int, "default">prElem;


АТ>
АТ>pair<int, const char*> prElem(int(), "default");
АТ>


АТ>Вместо 'int' можно, при желании, подставить любой другой умолчательно конструируемый тип:


АТ>
АТ>pair<vector<int>, const char*> prElem(vector<int>(), "default");
АТ>pair<VPupkinStruct, const char*> prElem(VPupkinStruct(), "default");
АТ>


Точнее, не "умолчательно конструируемый", а "()-инициализируемый"
Best regards,
Андрей Тарасевич
Re[4]: Передать параметр при объявлении
От: remark Россия http://www.1024cores.net/
Дата: 15.03.06 21:37
Оценка:
Здравствуйте, Alxndr, Вы писали:

A>Здравствуйте, Vovik1982, Вы писали:


V>>И, плюс ко всему, объявление у меня в заголовочном файле.


A>Если этот заголовочный файл подключается больше чем к одному cpp, то это нарушение ODR.


Почему??? Объявление-то одно. С точностью до лексем.


1024cores &mdash; all about multithreading, multicore, concurrency, parallelism, lock-free algorithms
Re: Передать параметр при объявлении
От: remark Россия http://www.1024cores.net/
Дата: 15.03.06 21:38
Оценка:
Здравствуйте, Vovik1982, Вы писали:

V>Есть примерно такая конструкция:


V>pair<int, char*>prElem;


V>Я хочу чтобы при ОБЪЯВЛЕНИИ была возможность задать значение для char*.


V>Как это сделать?



при ОБЪЯВЛЕНИИ? Это что-ли прямо прямо в объявлении класса, например?


1024cores &mdash; all about multithreading, multicore, concurrency, parallelism, lock-free algorithms
Re: Передать параметр при объявлении
От: remark Россия http://www.1024cores.net/
Дата: 15.03.06 21:40
Оценка:
Здравствуйте, Vovik1982, Вы писали:

V>Есть примерно такая конструкция:


V>pair<int, char*>prElem;


V>Я хочу чтобы при ОБЪЯВЛЕНИИ была возможность задать значение для char*.


V>Как это сделать?



Лови: здесь
Тут можно в конструктор передавать значение только для первого или второго члена.



1024cores &mdash; all about multithreading, multicore, concurrency, parallelism, lock-free algorithms
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.