Discussion Board

Results 1 to 8 of 8
  1. #1
    Registered User supermenmen's Avatar
    Join Date
    Mar 2009
    Posts
    12
    мне необходимо создать указатель на любой объект наследуемый от Cbase или имеющие еще какие не будь общие черты.
    Code:
    TAny* figure; //создаю указатель на любой тип
    figure =reinterpret_cast<CT_type*>(figure);//привожу его к указателю на тип CT_type
    figure = CT_type::NewL(this);//создаю объект CT_type
    вроде все ок! но как теперь через этот указатель вызывать функции объекта CT_type
    Code:
    figure->?????
    или подскажите другой способ как это сделать

  2. #2
    Registered User JasFas0la's Avatar
    Join Date
    Nov 2007
    Posts
    84
    Подсказываю другой способ. Есть у меня несколько знакомых программистов. Начинали они примерно так же,как ты - т.е. не читали книги, а сразу перешли к разработке "почти" коммерческих проектов. Следствие - через года 2 после начала разработки таких проектов от них ещё можно было услышать вопросы, ответы на которые можно найти примерно на седьмом дне книги "Си++ за 21 день". Мой тебе совет - не хочешь потерять очень много времени впустую - отложи все дела, и прочитай хотя-бы книгу "Си++ за 21 день" по технологии 3 дня за сутки. Т.е. за 3 недели ты её сможешь прочесть минимум 3 раза, а сэкономишь (именно от "не менее 3х прочтений") годы!

  3. #3
    Nokia Developer Moderator truf's Avatar
    Join Date
    Jun 2007
    Location
    Moscow, Russia
    Posts
    1,355
    Вы плохо знаете C++. Вам рано осваивать Symbian C++. Почитайте еще раз учебник, потусите на форумах чистых C++ программистов.

  4. #4
    Nokia Developer Champion Den123's Avatar
    Join Date
    Jul 2007
    Location
    Magnitogorsk, Russia
    Posts
    536
    Википедию нашу почитайте:
    http://wiki.forum.nokia.com/index.php/Category:Lang-RU
    Про тоже двухфазное конструирование, например.
    В конце концов не зря же мы ее писали

  5. #5
    Registered User supermenmen's Avatar
    Join Date
    Mar 2009
    Posts
    12
    Да я с вами всеми полностью согласен, знаний С++ не хватает, но ведь я продолжаю учиться.
    Пытаюсь писать код и параллельно читать книги, а иначе, если просто читать книгу, можно к концу забыть все что было в начале.
    Ладно эт так…
    Теперь собственно вопрос, я понял как решить эту проблему но у меня не выходит с наследованием M-класса
    Code:
    class MFigure //: public CBase
    	{
    public:	
    	virtual void Rotate()=0;
    	virtual void PutDown()=0;
    	virtual void PutRight()=0;
    	virtual void PutLeft()=0;
    	};
    Code:
    class MFigure;
    class CL_type : public CBase, public MFigure
    	{
             public:
        virtual	void Rotate();
        virtual	void PutDown();
        virtual	void PutRight();
        virtual	void PutLeft();
            ...
    все как сказано в:Symbian OS Explained. Effective C++ Programming For Smartphones
    но не выходит, карбид выдает:
    illegal use of incomplete struct/union/class 'MFigure'

  6. #6
    Nokia Developer Champion Den123's Avatar
    Join Date
    Jul 2007
    Location
    Magnitogorsk, Russia
    Posts
    536
    Вы зачем forward declaration делаете ?
    Code:
    class MFigure;
    Уберите. Приведенное выше определение интерфейса MFigure должно быть в области видимости.

  7. #7
    Registered User supermenmen's Avatar
    Join Date
    Mar 2009
    Posts
    12
    Спасибо, вот только как теперь правильно освободить память, в книге как-то мутно написано то сначала пишут что в M-классах запрещается объявлять конструкторы деструкторы, то потом говорят что должен быть объявлен виртуал деструктор, ну а про наличие USER 42 я уже на практике убедился. Подскажите пожалуйста как правильно удалять объект наследуемый от М-класса.

  8. #8
    Nokia Developer Moderator truf's Avatar
    Join Date
    Jun 2007
    Location
    Moscow, Russia
    Posts
    1,355
    то сначала пишут что в M-классах запрещается объявлять конструкторы деструкторы, то потом говорят что должен быть объявлен виртуал деструктор
    Ну показывайте, что написано в книге.

    См 3.4 Cleanup в An Introduction to M Classes.

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •  
Nokia Developer aims to help you create apps and publish them so you can connect with users around the world.

京ICP备05048969号  © Copyright Nokia 2013 All rights reserved