-
初如化列表查看全部
-
#include <iostream>
#include <string>
using namespace std;
/**
* 定义类:Student
* 数据成员:m_strName
* 无参构造函数:Student()
* 有参构造函数:Student(string _name)
* 拷贝构造函数:Student(const Student& stu)
* 析构函数:~Student()
* 数据成员函数:setName(string _name)、getName()
*/
class student
{
public:
student(){m_strName=" ";}
student(string _name){m_strName=_name;}
student(const student& stu){};
~student(){};
void setName(string _name){m_strName=_name;}
string getName(){return m_strName;}
private:
string m_strName;
};
int main(void)
{
// 通过new方式实例化对象*stu
student *stu = new student();
// 更改对象的数据成员为“慕课网”
stu->setName("慕课网");
// 打印对象的数据成员
cout<<stu->getName()<<endl;
delete stu;
stu=NULL;
return 0;
}
查看全部 -
定义一个Teacher类,要求分别采用同文件类外定义和分文件类外定义的方式文成
数据成员:
名字
年龄
性别
成员函数:
数据成员的数据封装函数
授课teach
Teacher.h(头文件)
#include<string>
#include<iostream>
using namespace std;
class Teacher
{
public:
Teacher();
Teacher(string name, int age=10);
void setName(string name);
string getName();
void setAge(int age);
int getAge();
private:
string m_strName;
int m_iAge;
};
Teacher.cpp(源文件)
#include"Teacher.h"
Teacher::Teacher()
{
m_strName = "ZYJ";
m_iAge = 5;
cout << "Teacher()" << endl;
}
Teacher::Teacher(string name,int age)
{
m_strName = name;
m_iAge = age;
cout << "Teacher(string name, int age)" << endl;
}
void Teacher::setName(string name)
{
m_strName = name;
}
string Teacher::getName()
{
return m_strName;
}
void Teacher::setAge(int age)
{
m_iAge = age;
}
int Teacher::getAge()
{
return m_iAge;
}
text.cpp(源文件)
#include<iostream>
#include<stdlib.h>
#include<string>
#include "Teacher.h"
using namespace std;
int main(void)
{
Teacher t1;
Teacher t2("ZYJ1", 22);
Teacher t3("ZTJ3");
cout << t1.getName() << " " << t1.getAge() << endl;
cout << t2.getName() << " " << t2.getAge() << endl;
cout << t3.getName() << " " << t3.getAge() << endl;
system("pause");
return 0;
}
查看全部 -
#include <iostream>
#include <string>
#include<stdlib.h>
using namespace std;
/*************************************************/
/*数据的封装
定义一个Student类,含有如下信息
1.姓名:name
2.性别:gender
3.学分(只读);score
4.学习:study*/
class Student
{
public:
//由于只有学分只读不写的所以其他的元素都要写上get和set函数
void setName(string _name)
{
m_strName = _name;
}
string getName()
{
return m_strName;
}
void setGender(string _gender)
{
m_strGender = _gender;
}
string getGender()
{
return m_strGender;
}
int getScore()
{
return m_iScore;
}
void initScore()//定义一个学分的初值
{
m_iScore = 0;
}
void study(int _score)//传入一个int类型的形参(分数)
{
m_iScore += _score;//与总分相加
}
private:
string m_strName;//添加一个命名的规则在名字前面加上m_并且在加上它的数据类型,这样写的好处是让我们知道这是一个定义在类里面的成员
string m_strGender;
int m_iScore;
};
int main(void)
{
Student stu;//实例化一个类的对象
stu.initScore();//初始化一个学分
stu.setName("zyj");
stu.setGender("女");
stu.study(10);
stu.study(20);
cout << stu.getName() << " " << stu.getGender() << " " << stu.getScore() << endl;
system("pause");
return 0;
}
查看全部 -
#include<iostream>
#include<stdlib.h>
#include<string>
using namespace std;
/*题目:1.提示用户输入姓名
2.接收用户的输入
3.向用户问好,hello xxx
4.告诉用户名字的长度
5.告诉用户名字的首字母是什么
6.如果用户直接输入回车,那么告诉用户输入为空
7.如果用户输入的是imooc,那么告诉用户的角色是一个管理员*/
int main(void)
{
string name;
cout << "Please input you name:";
getline(cin, name);//由于要求2和6,所以如果用cin的话比较麻烦,可以直接用getline函数
if (name.empty())
{
cout << "input is null.." << endl;
system("pause");
return 0;
}
if (name == "imooc")
{
cout << "you are a administrator" << endl;
}
cout << "hello " + name << endl;//hello后面要加空格
cout << "your name length :" << name.size() << endl;//"your name length :"是一个字符串,但是name.size()并不是字符串,所以他们两个不能用加号连接
cout << "your name first letter is :" << name[0] << endl;//因为输出是一个字符,所以最好不要用加号连接
system("pause");
return 0;
}
查看全部 -
#include<iostream>
#include<stdlib.h>
using namespace std;
//定义一个坐标类,有数据成员x和y,有成员函数分别打印x和y的值
class Coordinate //取的类的名字最好与定义的类贴合
{
public:
int x;
int y;
void printX()
{
cout << x << endl;
}
void printY()
{
cout << y << endl;
}
};
int main(void)
{
Coordinate coor;
coor.x = 10;
coor.y = 20;
coor.printX();
coor.printY();
Coordinate *p = new Coordinate();
if (NULL == p)
{
return 0;//申请内存失败
}
p->x = 100;
p->y = 200;
p->printX();
p->printY();
delete p;
p = NULL;//释放掉内存
system("pause");
return 0;
}
查看全部 -
str常用操作
查看全部 -
拷贝构造函数
定义格式:类名(const 类名&变量名)
class Student
{
public:
Student(){m_strName = "Jim";}
Student(const Student &stu){} //拷贝构造函数在名称上一样,但是在参数设计上却不同,const +引用
private:
string m_strName;
}
如果没有自定义的拷贝构造函数,则系统自动生成一个默认的拷贝构造函数
当采用直接初始化或复制初始化实例化对象时,系统自动调用拷贝构造函数
查看全部 -
本节内容的一些内容摘要
查看全部 -
string对象的初始化,及连接两个字符串的注意点
查看全部 -
string对象的初始化
查看全部 -
从栈和堆中实例化对象
查看全部 -
对象生命历程
查看全部 -
析构函数2
查看全部 -
析构函数,函数内无参数
查看全部
举报