
课程咨询: 400-996-5531 / 投诉建议: 400-111-8989
认真做教育 专心促就业
“这个世界都是由代码组成的。”这是程序员的格言,随着互联网的快速发展,世界已经进入了电子信息时代,而程序员也成为了新时代产业下所产生的火热职业,现在大学都会开放一门变成的基础课,C语言。这对于大学生逻辑思维具有很棒的好处,同样对于要入门编程大海的未来的程序员,也是一个很棒的入门机会,今天烟台C#培训小编就为大家带来,C语言程序设计基础,希望大家喜欢!
类的静态函数成员
1.类外代码可以使用类名和作用域操作符来调用静态成员函数;
2.静态成员函数主要用于处理该类的静态数据成员,可以直接调用静态成员函数;
3.如果访问非静态成员,要通过对象来访问。
class A{
private:
static int num;
int a=1;
public:
static void shownum(){cout<< num << endl;} //2.
static int change(int a);//一个定义的例子;
}
int A::num=0;
int A::change(int a){
A::num=a; //静态数据成员的引用需要加 “类::”来修饰
}
int main(){
A:shownum(); // 1.
}
类的友元
友元是C++提供的一种破坏数据封装和数据隐藏的机制。
友元函数
在类声明中由关键字friend修饰说明的非成员函数,在它的函数体中能
够通过对象名访问 private 和 protected成员
class Point {
public:
Point(int x=0, int y=0) : x(x), y(y) { }
int getX() { return x; }
int getY() { return y; }
friend float dist(Point &a, Point &b);
private:
int x, y;
};
float dist( Point& a, Point& b) //非成员函数
{ double x = a.x - b.x; //通过对象名访问私有成员
double y = a.y - b.y;return static_cast<float>(sqrt(x * x + y * y));
}
int main(){
Point p1(1, 1), p2(4, 5);
cout <<"The distance is: ";
cout << dist(p1, p2) << endl;
return 0;
}
友元类
friend声明是单向授权声明,类A是类B的友元,意味着类A获得了访问类B的私有成员的权限,但类B不能反向访问类A的私有成员;
此处的friend更像是一种"上级声明"
class A {
friend class B;
public:
void display() {cout << x << endl;}
private:
int x;
};
class B {
public:
void set(int i);
void display();
private:
A a; //B类中含有A类成员,正常来说是看不到封装的私有成员的
};
void B::set(int i) { a.x=i; } //因为是友元,所以可以通过对象名访问私有成员
void B::display() { a.display(); }
共享数据的保护
对于既需要共享、又需要防止改变的数据应该声明为常类型(用const进行修饰);
对于不改变对象状态的成员函数应该声明为常函数.