①、Solution Fbnc; //先实例化一个对象
②、Fbnc.Fibonacci(10); //调用实例
注意:Fbnc::Fibonacci()这样的调用方法只有在有方法覆盖或重写时才能调用;或者将该方法设为静态方法;经常作为界面按钮的回调函数使用。
or
①、 Solution *Fbnc= new Solution ();//来创建一个类的对象,返回其指针 Fbnc
②、 Fbnc->Fibonacci(10);//调用该方法
③、 delete Fbnc;
#include <iostream>
#include <string>
using namespace std;
class Solution {
public:
int Fibonacci(int n) {
int n1 = 0;
int n2 = 1;
int ni;
if (n <= 0) return 0;
if (n == 1) return 1;
for(int i = 2; i <= n; i++) {
ni = n1 + n2;
n1 = n2;
n2 = ni;
}
return ni;
}
};
int main()
{
Solution Fbnc;
cout<<"Fbnq[10]= "<<Fbnc.Fibonacci(10)<<endl; //类是抽象化的,你要定义一个实例对象,通过实例调用;
Solution *Fbnc1= new Solution();
cout<<"Fbnq[5]= "<<Fbnc1->Fibonacci(5)<<endl;
delete Fbnc1;
}
在学习C++的过程中我们经常会用到.和::和:和->,在此整理一下这些常用符号的区别。
1、A.B则A为对象或者结构体;
2、A->B则A为指针,->是成员提取,A->B是提取A中的成员B,A只能是指向类、结构、联合的指针;
3、::是作用域运算符,A::B表示作用域A中的名称B,A可以是名字空间、类、结构;
4、:一般用来表示继承;
类方法:即静态方法(静态成员函数),指的是类中被static修饰的方法,无this指针,不属于对象,可用类名调用
实例方法:即成员方法,属于对象的方法
性质1:一个类中的其他方法可以互相调用:实例方法可以调用类中的其他方法;但是类方法不能调用实例方法,只能调用其他类方法(非绝对,也可以使用传引用的方法让类方法调用实例方法)
性质2:当类文件加载到内存,实例方法不会分配内存空间,只有在对象被创建之后,才会为实例方法分配内存空间;而类方法在类被加载到内存时就分配了相应的内存空间
性质3:类方法不能被覆盖,实例方法可以被覆盖。