子类调用父类方法:c++和java的不同
2014-01-31 14:35
387 查看
子类调用父类方法:c++和java的不同
我自定义了一个场景,在场景的初始化中,有这么一句:
Scene::init()
到这里,我百思不得其解,为什么呢?
下面分析:
因为我是一名java程序员,按照java的思想,使用类名调用的方法,就是静态方法,并且是全局的。因此到了这句,我就认为是调用了父类的一个全局函数。
这岂能怨我,谁然c++中的子类调用父类的方法,写成是:Scene::init()这种方式呢?这明显是java调用全局方法的写法吗,是不是。
从上面可以看出来,在这一点,java和c++是有很大的区别的,所以说,想学语言,首先要去学习java,因为简单呀,之后再去学习c,然后再来学习c++,因为东西太多了。
废话不多说了,现在来说一下上面的例子,其实很简单:
Scene::init()这个调用就是c++中很经常的调用,子类调用父类的方法,和java中的super.init()是一个概念,不存在什么全局不全局的问题。
补充一点:上面的是普通方法的子父类调用,对于构造函数里面,和上面所说的也完全一样,如下:
看到了么?就是这么简单。这个千万要和java区分开来。
接下来看一下调用了父类的什么方法?
bool GameScene::init(){ if (!Layer::init()) { return false; } }
我自定义了一个场景,在场景的初始化中,有这么一句:
Scene::init()
到这里,我百思不得其解,为什么呢?
下面分析:
因为我是一名java程序员,按照java的思想,使用类名调用的方法,就是静态方法,并且是全局的。因此到了这句,我就认为是调用了父类的一个全局函数。
这岂能怨我,谁然c++中的子类调用父类的方法,写成是:Scene::init()这种方式呢?这明显是java调用全局方法的写法吗,是不是。
从上面可以看出来,在这一点,java和c++是有很大的区别的,所以说,想学语言,首先要去学习java,因为简单呀,之后再去学习c,然后再来学习c++,因为东西太多了。
废话不多说了,现在来说一下上面的例子,其实很简单:
Scene::init()这个调用就是c++中很经常的调用,子类调用父类的方法,和java中的super.init()是一个概念,不存在什么全局不全局的问题。
补充一点:上面的是普通方法的子父类调用,对于构造函数里面,和上面所说的也完全一样,如下:
看到了么?就是这么简单。这个千万要和java区分开来。
class A { public: A() { printf("aaaa\n"); } ~A() { printf("~~~~~aa\n"); } }; class B : public A { public: B() { A::A(); printf("bbbb\n"); } ~B() { A::~A(); printf("~~~~bbb\n"); } }; void main(void) { B c; }
接下来看一下调用了父类的什么方法?
bool Layer::init() { bool ret = false; do { Director * director; CC_BREAK_IF(!(director = Director::getInstance())); this->setContentSize(director->getWinSize()); // success ret = true; } while(0); return ret; }
相关文章推荐
- c++与java中子类中调用父类成员的方法
- C++和JAVA中一些区别,包括指向子类的引用会调用谁的方法,子类构造函数自动调用父类构造函数时,父构造会调用的谁方法
- c++和java中关于如何调用父类方法和子类方法的辨析
- java基础:父类与子类之间变量和方法的调用
- java中子类继承父类方法及调用规则
- 为什么java的子类中必须调用父类的构造方法
- Java -- 子类使用super调用父类的方法A,A 调用了方法B,子类也override方法B,那么super.A()最终调用到了子类的B方法
- Java基础之父类与子类之间变量和方法的调用
- java创建一个子类对象是会调用父类的构造方法会不会创建父类
- Java__子类中调用父类重写的方法。
- Java中静态代码块,非静态代码块,以及父类与子类的构造方法的之间调用顺序
- java中父类与子类, 不同的两个类中的因为构造函数由于递归调用导致栈溢出问题
- Java中不要在父类的构造方法中调用会被子类重写的方法
- java中关于子类实例化时调用父类无参构造方法的问题
- Java中子类与父类的构造方法的调用关系
- 从父类构造器调用子类覆盖方法看Java初始化过程
- C++ 子类B重载父类A的方法funA后,在父类A中调用funA会调用子类B还是父类A的funA方法?
- java基础:父类与子类之间变量和方法的调用
- java基础:父类与子类之间变量和方法的调用
- java继承时,实例化子类,是否会默认调用父类构造方法