1,const和类
Classstudent.cpp代码如下:
#include "pch.h"
#include <iostream>
#include "Cstudent.h"
using namespace std;
int main(int argc, char* argv[])
{
Cstudent stu((char*)"li", (char*)"a001", 80);
stu.print();
return 0;
}
Cstudent.cpp代码如下:
#include "pch.h"
#include "Cstudent.h"
#include <iostream>
using namespace std;
Cstudent::Cstudent(char* myName, char* myNum, float myScore):matchScore(myScore)
{
strcpy_s(name, myName);
strcpy_s(stuNum, myNum);
}
Cstudent::Cstudent(char* myName, char* myNum):matchScore(0)
{
strcpy_s(name, myName);
strcpy_s(stuNum, myNum);
}
Cstudent::~Cstudent(void)
{
}
void Cstudent::setName(char* myName)
{
strcpy_s(name , myName);
}
void Cstudent::setNum(char* myNum)
{
strcpy_s(stuNum , myNum);
}
void Cstudent::print()
{
cout << "姓名" << name << ",学号" << stuNum << ",数学成绩:" << matchScore << endl;
}
Cstudent.h代码如下:
#pragma once
class Cstudent
{
public:
Cstudent(char* myName,char* myNum, float myScore);//构造函数
Cstudent(char* myName, char* myNum);
~Cstudent(void);//析构函数
private:
char name[10];
char stuNum[10];
const float matchScore;
public:
void setName(char* myName);
void setNum(char* myNum);
void print();
};
Classstudent.cpp代码不变
Cstudent.cpp代码更改如下:
void Cstudent::print()const//const成员函数
{
cout << "姓名" << name << ",学号" << stuNum << ",数学成绩:" << matchScore << endl;
}
Cstudent.h代码更改如下:
void print()const;//const成员函数
3, const对象
Classstudent.cpp代码更改如下:
const Cstudent stu((char*)"li", (char*)"a001", 80);
4,this指针
其中this->x指的是int x,y;中的x; this->x = x中的=右边的 “x”指的是setPoint里面的形参int x
pointTest.cpp代码如下:
#include "pch.h"
#include <iostream>
#include "CMyPoint.h"
using namespace std;
int main(int argc ,char* argv[])
{
CMyPoint pt(2, 3);
CMyPoint pt1(0, 0);
pt1.copy(pt);
cout << pt1.x << "," << pt1.y << endl;//由于这部分的x y是私有类型,所以不可能通过对象直接访问它,需要将 .h文件里面的private改为public
return 0;
}
CMypoint.cpp代码如下
#include "pch.h"
#include "CMyPoint.h"
CMyPoint::CMyPoint(int x,int y)
{
this->x = x;
this->y = y;
}
CMyPoint::~CMyPoint()
{
}
void CMyPoint::copy(CMyPoint pt)
{
*this = pt;
}
CMypoint.h代码如下
#pragma once
class CMyPoint
{
public:
CMyPoint(int x,int y);
~CMyPoint();
public:
int x, y;
public:
void copy(CMyPoint pt);//成员函数
};