新手前来报到,顺便问一个有关问题
新手前来报到,顺便问一个问题
在VC中如何定义一个带参数的构造函数。
如:
Class Animal
{
public:
Animal(int height,int weight);
。
。
。
};
后面我要调用这个构造函数 该怎么定义
比如:
void main{
Animal AN;
AN.XX();
}
我知道上面这样定义Animal肯定不行,就想问该怎么去定义带参数的一个构造函数,求举例!
------解决思路----------------------
Animal AN(50,100)
------解决思路----------------------
构造函数是在创建类对象的时候调用的,所以肯定不能用.的方式来调用了,按1L的方式用就可以
------解决思路----------------------
例如:这里定义了4种构造函数
Class Animal
{
public:
Animal(int n1,int n2,int n3); //构造1
Animal(int n1,int n2); //构造2
Animal(int n1); //构造3
Animal(); //构造4
};
用法如下
void main
{
Animal A1(100,200,300); //构造1
Animal A2(100,200); //构造2
Animal A3(100); //构造3
Animal A4; //构造4
}
------解决思路----------------------
------解决思路----------------------
------解决思路----------------------
无参的也不能用.的方式调用,比如有个类A,有个无参的构造函数了,然后A a;这样写了之后,就会调用无参的构造函数
------解决思路----------------------
AN.eat();
在VC中如何定义一个带参数的构造函数。
如:
Class Animal
{
public:
Animal(int height,int weight);
。
。
。
};
后面我要调用这个构造函数 该怎么定义
比如:
void main{
Animal AN;
AN.XX();
}
我知道上面这样定义Animal肯定不行,就想问该怎么去定义带参数的一个构造函数,求举例!
------解决思路----------------------
Animal AN(50,100)
------解决思路----------------------
构造函数是在创建类对象的时候调用的,所以肯定不能用.的方式来调用了,按1L的方式用就可以
------解决思路----------------------
例如:这里定义了4种构造函数
Class Animal
{
public:
Animal(int n1,int n2,int n3); //构造1
Animal(int n1,int n2); //构造2
Animal(int n1); //构造3
Animal(); //构造4
};
用法如下
void main
{
Animal A1(100,200,300); //构造1
Animal A2(100,200); //构造2
Animal A3(100); //构造3
Animal A4; //构造4
}
------解决思路----------------------
Class Animal
{
public:
Animal(int a,int b){printf("%d",a+b)};
};
int main()
{
Animal animal(5,6);
return 0;
}
------解决思路----------------------
class Animal
{
public:
Animal(int nHeight=0,int nWeight=0) : m_nHeight(nHeight),m_nWeight(nWeight)
{
//.........
}
~Animal()
{
}
inline int GetHeight(void) { return m_nHeight; }
inline int GetWeight(void) { return m_nWeight; }
inline void SetHeight(int nHeight) { m_nHeight = nHeight; }
inline void SetWeight(int nWeight) { m_nWeight = nWeight; }
private:
int m_nHeight; //unsigned int
int m_nWeight; //unsigned int
};
Animal animal1(50,100);
Animal animal2;
animal2.SetHeight(200);
animal2.SetWeight(250);
Animal pAnimal3 = new Animal(100,100);
Animal pAnimal4 = new Animal();
pAnimal4->SetHeight(20);
pAnimal4->SetWeight(40);
delete pAnimal3;
pAnimal3 = NULL;
delete pAnimal4;
pAnimal4 = NULL;
------解决思路----------------------
无参的也不能用.的方式调用,比如有个类A,有个无参的构造函数了,然后A a;这样写了之后,就会调用无参的构造函数
------解决思路----------------------
AN.eat();