#include <iostream.h> //预处理命名
//头文件带后缀.h 不同点:1、由于在c语言中无命名空间,因此用带后缀.h的头文件时,不必用"using namesapce std;"做声明
2、c语言中,不要求main函数返回整数,一般用void型(无返回值)
/*
因此c语言中这样写的:
#include <iostream.h> //头文件时带后缀.h的
void main()
{
cout<<"This is a C++ program.";
}//以后的介绍中我回给大家,都按照标准c++的规定执行。
*/
using namespace std; //使用的命名空间std class Student //声明一个类,类名为Student { private: //以下的类中私有部分 int num; //私有变量 int score; //私有变量 public: //以下为类中的公有部分 void setdata() //---------定义公有成员函数setdata { cin >> num; //输入num的值 cin >> score; //输入score的值 } void display() //----------定义公有成员函数display { cout <<"num="<<num<<endl; //输出num的值 cout <<"score="<<score<<endl; //输出score的值 }; }; //l类的声明结束 Student stud1,stud2; //定义stud1和stud2为Student类的变量,称为对象 int main(){ stud1.setdata(); //调用对象stud1的setdata函数 stud2.setdata(); //调用对象stud2的setdata函数 stud1.display(); //调用对象stud1的display函数 stud2.display(); //调用对象stud2的display函数 return 0; }
在一个类中,包含2种成员:数据(如变量num,score)和 函数(如setdata函数和display函数),分别称为 数据成员 和 成员函数;
在c++中把一组数据和有权调用这些数据的函数封装在一起,组成一种称为"类(class)"的数据结构。
在上面的程序中,数据成员num,score和成员函数setdata,display组成一个名为Student的"类"类型。成员函数是用来对数据成员进行操作的。也就是说,一个类是有一批数据以及对其操作的函数组成的。
具有"类"类型特征的变量称为“对象”(object),stud1和stud2是Student类型的对象。和其他变量一样,对象是占用存储空间的,而类型并不占用存储空间,它只是给出一种"模型",供用户定义实际的对象,这个对象具有相同的结构和特性。“.”是成员运算符,把对象和成员连接起来。
在c语言的中,头文件用.h作为后缀的,如"stdio.h,math.h,string.h"等,但是后来ANSI C++建议头文件不带后缀.h, 但是为了使原来编写的C++程序能够运行,扔允许使用原有带后缀.h的头文件。二者同时并存的。
一个类的各数据成员的构造顺序是什么?
类定义对象时,首先调用类的构造函数,调用前会分配内存空间给类中各个对象(你所指的数据成员,如对象、变量等),分配过程就是构造过程,顺序按照你定义的先后次序进行
在java中一个类的实例对象的创建步凑!
在java中,就是该类是全局唯一,只能实例化一次。后续的使用都是使用的同一个实例。
一般的该类的构造函数是private的,该类对外暴漏一个getInstance()方法,可以得到该类的实例。
public class Single { private static Single instance = null; int property = 0; private Single() { } public static Single getInstance() { if (instance == null) { return new Single(); } return instance; } }
Sutdent *student = [[Sutdent alloc] init]; 这行代码含有几个重要含义
[Student alloc]调用Student的类方法,这类似于分配内存,
[object init]是构成函数调用,初始类对象的成员变量。