В следующей строке ошибка Default argument is not allowed
.
public ref class SPlayerObj{
private:
void k(int s = 0){ //ERROR
}
}
Почему C++ не имеет аргумента по умолчанию для управляемых типов?
Я хотел бы знать, есть ли способ это исправить.
ref-class
специфичны (семантика C++ не имеет к этому ничего отношения), поэтому они могли просто предоставить соответствующую семантику. Однако они этого не сделали. - person sehe   schedule 17.03.2013int
наSystem::Int32
? - person antonijn   schedule 17.03.2013template
противgeneric
,*
против^
,&
против%
. Следует признать, что синтаксис деструктора перегружен для выполнения двух разных задач, но это скорее исключение, чем правило. Принятый ответ в основном делает то же самое: аргументы по умолчанию С++ в основном похожи наtemplate
s, а аргументы по умолчанию CLR похожи наgeneric
s, поскольку первые не существуют после времени компиляции, а последние... - person Stephen Lin   schedule 17.03.2013template
дляgeneric
s; они внешне похожи, но имеют разную семантику, поэтому повторное использование одного и того же синтаксиса без устранения двусмысленности было бы неуместным. - person Stephen Lin   schedule 17.03.2013template
s over управляемые типы возможны, но не понимаются кодом, отличным от C++/CLI, но я понимаю, почему они этого не сделали. - person Stephen Lin   schedule 17.03.2013