C语言的类和对象
【类实现了C++面向对象程序设计的基础,我们使用类来定义对象的属性,类是C++封装的基本单元。】
一、-----→类
使用关键字class创建类,一个类声明定义了一个连接代码和一个数据的新类型,这个新的类型又可以用来声明该类的对象。因此,类又是逻辑逻辑抽象概念,儿对象是物理存在的,也就是说对象是类的实例。
类的声明语法上和结构相似。
[一下是完整的类的形式]
class class_name
{
private data and functions
access_specifier:
data and functions
access_specifiter:
data and functions
//……..
access_specifier:是
data and functions
}object_list;
其中,object_list是任选项,如过存在,他声明类的对象。access_specifier为下面的三个关键字之一:
Public private protected
默认时,在类声明的函数和数据属于该类私有,只能被该类的成员访问。如果使用,pubilc访问限定符号,函数和程序就可以被其他部分访问。Protected访问限定符,仅在涉及继承的时候才需要(十五章了解)。访问限定符已经使用,其作用就保持到遇到别的访问限定符或者达到类声明的结束处。
在类声明内可以任意改变访问说明符号,对于某些声明,可以转换位public,然后再转换成private。
[如下所述]
/*******************************
··构造函数和析构函数学习···
*******************************/
//Using a constructor and destructor.
/*******************************
声明C++ 程序 头文件
*******************************/
#include <iostream>
#include <string.h>
#include <conio.h>
#include <iostream>
/*******************************
·名字空间:组织大型的程序结构·
*******************************/
using namespace std;
/*******************************
·····全局变量声明·····
/******************************/
#define SIZE 1024
/*******************************
················
/******************************/
class employee
{
char name[SIZE]; //private by deaulte
public:
void putname(char *n);
void getname(char *n);
private:
double wage; //now,private again
public:
void putwage(double w); //back to public
double getwage();
};
void employee::putname(char *n)
指向类成员函数的指针{
strcpy(name,n);
}
void employee::getname(char *n)
{
strcpy(name,n);
}
void employee::putwage(double w)
{
wage = w;
}
double employee::getwage()
{
return wage;
}
int main()
{
employee ted;
char my_name[1024] = "\0";
ted.putname("Yigao Wu\n");
ted.putwage(12000);
ame(my_name);
cout << my_name << "makes $\n\n";
cout << wage() << "per year.\n";
cout << employee.wage << "per year.\n";
system("pause"); /*程序的停止按键提示*/
return 0;
}
【类内频繁使用访问限定符唯一优点是:通过把一个类各个部分可视的组织在一起,可以使阅读程序者很好的阅读和理解,对于编译器没有什么区别。在类中声明的函数称之为成员函数。成员函数可以访问类的所属的所有的任何成员(也称为实例变量),类的任何元素都可被当做该类的成员。】
对于成员也有一些限制,非静态成员变量没有初值,成员不能成为当前正被声明声明的类的对象(虽然一个成员可以是指向当前正被声明的类的指针)。成员不能声明为auto、extern或register。
可以使一个类的所有数据成员为该类私有,这是实现封装方法的一部分,然而有时候也需要一个或者是几个为公有的(例如:为了获取较快的执行速度,频繁使用的变量是全局可访问的)。一旦一个变量变成了公有的,在用户程序的所有的地方都可以访问这个变量,访问公
有的数据的成员的语法与调用成员函数的语法是一样“:”指定对象名称,点运算符和变量名称。
/*******************************
声明C++ 程序 头文件
*******************************/
#include <iostream>
/*******************************
·名字空间:组织大型的程序结构·
*******************************/
using namespace std;
/*******************************
·····
*******************************/
class employee
{
public:
int i,j,n,m;
};
int main()
{
employee em_one,em_two;
em_one.i = 1;
em_two.i = 2;
em_one.j = 3;
em_two.j = 4;
cout << "调试函数\n";
cout << em_one.i << "\n";
cout << em_two.i << "\n";
cout << em_one.j << "\n";
cout << em_two.j << "\n";
system("pause"); /*程序的停止按键提示*/
return 0;
}
一、-----→结构和类之间的关联
结构是C子集的一部分,是从C语言中继承过来的。在C++中结构的作用被扩展了,是它称为一个类的代替方法。类和结构的唯一区别在于:默认时,结构的所有成员是公有的,儿类的所有成员是私有的,除此之外结构和类是等价的。也就是说结构定义了一个类的类型。
/*******************************
···结构体和类的相互关系···
*******************************/
//Using a constructor and destructor.
/*******************************
声明C++ 程序 头文件
*******************************/
#include <iostream>
#include <string.h>
#include <conio.h>
#include <iostream>
/*******************************
·名字空间:组织大型的程序结构·
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论