设计一个汽车类,
属性:轮胎的数量,车的品牌,价格,颜色,。。。
函数:推销函数:把汽车的属性展示出来cout
主函数:
创建一个汽车对象
修改汽车的价格
调用推销的函数
#ifndef __CAR_H__
#define __CAR_H__
class Car
{
public:
void instroduce();
void setSum(int sum);
int getSum();
void setPrice(float price);
float getPrice();
void setName(const char *name);
const char *getName();
void setColour(const char *colour);
const char *getColour();
Car(const char*name , int sum,int price, const char *colour);
Car(){};
private:
char name[20];
int sum;
char colour[10];
float price;
};
#endif
#include "car.h"
#include <string.h>
#include <iostream>
void Car::instroduce()
{
std::cout<<"name:"<<name<<" price: "<<price<<" sum: "<<sum<<" colour: "<<colour<<std::endl;
}
void Car::setSum(int sum)
{
this->sum=sum;
}
int Car::getSum()
{
return sum;
}
void Car::setName(const char *name)
{
strncpy(this->name,name,20);
}
const char* Car::getName()
{
return name;
}
float Car::getPrice()
{
return price;
}
void Car::setPrice(float price)
{
this->price=price;
}
Car::Car(const char*name , int sum,int price, const char *colour)
:sum(sum),price(price)
{
strncpy(this->name,name,20);
strncpy(this->colour,colour,10);
}
#include "car.h"
int main(void)
{
Car car("car",1,2,"red");
car.setPrice(122);
car.instroduce();
return 0;
}
运行结果
xfliu@ubuntu:lianxi$ ./bin/car
name:car price: 122 sum: 1 colour: red
在对象对生命周期结束时,系统会自动调用析构函数。主要用于回收对象内部需要释放对资源。
注意:析构函数不得有形参
#ifndef __CAR_H__
#define __CAR_H__
class Car
{
public:
void instroduce();
void setSum(int sum);
int getSum();
void setPrice(float price);
float getPrice();
void setName(const char *name);
const char *getName();
void setColour(const char *colour);
const char *getColour();
Car(const char*name , int sum,int price, const char *colour);
Car();
~Car();
private:
char name[20];
int sum;
char colour[10];
float price;
};
#endif
#include "car.h"
#include <string.h>
#include <iostream>
void Car::instroduce()
{
std::cout<<"name:"<<name<<" price: "<<price<<" sum: "<<sum<<" colour: "<<colour<<std::endl;
}
void Car::setSum(int sum)
{
this->sum=sum;
}
int Car::getSum()
{
return sum;
}
void Car::setName(const char *name)
{
strncpy(this->name,name,20);
}
const char* Car::getName()
{
return name;
}
float Car::getPrice()
{
return price;
}
void Car::setPrice(float price)
{
this->price=price;
}
Car::Car(const char*name , int sum,int price, const char *colour)
:sum(sum),price(price)
{
strncpy(this->name,name,20);
strncpy(this->colour,colour,10);
}
Car::~Car()
{
std::cout<<"this xigou fun : bye"<<std::endl;
}
#include "car.h"
int main(void)
{
Car car("car",1,2,"red");
car.setPrice(122);
car.instroduce();
return 0;
}
运行结果
xfliu@ubuntu:lianxi$ ./bin/car
name:car price: 122 sum: 1 colour: red
this xigou fun : bye
拷贝构造函数
在对象按值传递,或使用该类对象初始化本身时调用。
注意:拷贝构造函数的参数类型必须时引用
详见: 点击打开链接
#include <iostream>
#include <string>
using namespace std;
int main(void)
{
string s1;
//String s2(s1);
//String s3 = s1;
string s4("hello");
string s2(s4);
string s3 = s2;
string s5 = "hello";
string s6(10,'c');
cout<<"s1: "<<s1<<endl;
cout<<"s4: "<<s4<<endl;
cout<<"s2: "<<s2<<endl;
cout<<"s3: "<<s3<<endl;
cout<<"s5: "<<s5<<endl;
cout<<"s6: "<<s6<<endl;
cout<<"s1.empty(): "<<s1.empty()<<endl;
cout<<"s4.empty(): "<<s4.empty()<<endl;
cout<<"s6.size(): "<<s6.size()<<endl;
cout<<"s4[0]: "<<s4[0]<<endl;
cout<<"s4[1]: "<<s4[1]<<endl;
cout<<"s4[2]: "<<s4[2]<<endl;
cout<<"s4[3]: "<<s4[3]<<endl;
cout<<"s4[4]: "<<s4[4]<<endl;
cout<<"s4[5]: "<<s4[5]<<endl;
cout<<"s4[6]: "<<s4[6]<<endl;
cout<<"s4[7]: "<<s4[7]<<endl;
cout<<"s5+s6: "<<s5+s6<<endl;
s1=s2;
cout<<"s1: "<<s1<<endl;
int n=0;
n=(s1==s2);
cout<<"s1==s2: "<<n<<endl;
n=(s1>s2);
cout<<"s1>s2: "<<n<<endl;
n=(s1>=s2);
cout<<"s1>=s2: "<<n<<endl;
n=(s1<=s2);
cout<<"s1<=s2: "<<n<<endl;
n=(s1<s2);
cout<<"s1<s2: "<<n<<endl;
cout<<"请输入s1:";
cin>>s1;
cout<<"s1: "<<s1<<endl;
cout<<"请输入s1与s2:";
cin>>s1>>s2;
cout<<"s1: "<<s1<<endl;
cout<<"s2: "<<s2<<endl;
return 0;
}
运行结果
xfliu@ubuntu:lianxi$ ./bin/str3
s1:
s4: hello
s2: hello
s3: hello
s5: hello
s6: cccccccccc
s1.empty(): 1
s4.empty(): 0
s6.size(): 10
s4[0]: h
s4[1]: e
s4[2]: l
s4[3]: l
s4[4]: o
s4[5]:
s4[6]: A
s4[7]: �
s5+s6: hellocccccccccc
s1: hello
s1==s2: 1
s1>s2: 0
s1>=s2: 1
s1<=s2: 1
s1<s2: 0
请输入s1:1212
s1: 1212
请输入s1与s2:1212
ghgh
s1: 1212
s2: ghgh
getline?