构造函数
目的是初始化类的变量
在类中不能初始化变量,因此就出现了构造函数
// salary.cpp : Defines the entry point for the console application. //
#include "stdafx.h"
#include<iostream.h> class mysalary //定义薪水类 { public: mysalary(int id,double salary) //构造函数,用于设置员工编号和薪水 { this->id=id; this->salary=salary; } void salaryraise(double i) //成员函数,用于调整薪水 { salary=salary+salary*i; } void printsalary() { cout<<"员工编号:"<<id<<"员工薪水:"<<salary<<endl; } private: int id; //员工编号 double salary; //员工薪水 }; void main(void) { mysalary s1(1001,1000); s1.printsalary(); s1.salary=2000; s1.printsalary(); cout<<"涨薪水了10%后:"<<endl; s1.salaryraise(0.1); //薪水调高10% s1.printsalary(); } // Books.cpp : Defines the entry point for the console application. //
#include "stdafx.h"
#include <iostream.h> #include<string.h> class Books //定义一个图书类 { public: Books(char *Name,char *Publisher) //构造函数 { strcpy(bookname,Name); strcpy(publisher,Publisher); cout<<"您已经购买了图书:"<<bookname<<"--"<<publisher<<endl; bookcount++; } static void dispaly() //静态成员函数 { cout<<"图书总册数:"<<bookcount<<endl; } private: char bookname[50]; //定义成员变量,表示图书名 char publisher[50]; //定义成员变量,表示图书出版社 static int bookcount=0; //定义静态成员变量,表示图书总数 这里是编译会出错哦}; //静态成员初始化
static int bookcount=0; //放这里就行了,也就是说在类的定义里不能初始化变量 void main(void) { Books::dispaly(); //静态成员函数的调用 Books b1("C++项目开发实录","人民教育出版社"); Books b2("C++面向对象编程","电子工业出版社"); Books::dispaly(); //静态成员函数的调用 Books b3("数据结构","电子工业出版社"); Books::dispaly(); }