Добрый день.
Наткнулся на непонятную для меня проблему. Сначала делал для MSP430, но под Win на Visual Studio тоже самое, поэтому вопрос связан с общими понятиями C++.
Код
class A
{
public:
static A* Init(int i);
private:
A(int u);
int r;
};
A* A::Init(int i)
{
A(i); //[b]вот тут ошибка[/b]
}
A::A(int u)
{
r=u;
}
void main()
{
A* p=A::Init(6);
}
Вот такой вот простецкий код. Хочу сделать private-constructor, так как надо сделать ограничение на количество создаваемых объектов. В статической функции Init провожу проверку (сдесь не написал для наглядности) и если условие выполняется, то вызываю коснструктор, то есть выделяю память.
И все у меня здорово, до тех пор пока конструктор был без параметров, все работало как надо. А вот при добавлении параметра к конструктору оба компилятра выдают какую-то неперевариваемую мной ошибку:
Код
1. redifinition of formal parameter i
2. "A": no appropriate default constructor available
не понимаю, почему он хочет дефолт-конструктор и почему переопределение переменной i?
PS
Модераторы, не первый раз уже думаю в какую часть форума писать подобные вопросы. Нет подфорума по общим вопросам программирования (или в системный уровень программирования писать???). Написал тут хотя понимаю - ЦОС непричем.
Спасибо.