锘??xml version="1.0" encoding="utf-8" standalone="yes"?>一区二区三区欧美在线,欧美精品一区在线播放,国产九区一区在线http://www.shnenglu.com/cheney-chen/category/6878.html learning symbian C++zh-cnMon, 19 May 2008 13:12:46 GMTMon, 19 May 2008 13:12:46 GMT60Name Conventions for Applications on Symbian OShttp://www.shnenglu.com/cheney-chen/articles/Name_Conventions_for_Applications_on_Symbian_OS.htmlcheneycheneySun, 27 Apr 2008 06:57:00 GMThttp://www.shnenglu.com/cheney-chen/articles/Name_Conventions_for_Applications_on_Symbian_OS.htmlhttp://www.shnenglu.com/cheney-chen/comments/48259.htmlhttp://www.shnenglu.com/cheney-chen/articles/Name_Conventions_for_Applications_on_Symbian_OS.html#Feedback1http://www.shnenglu.com/cheney-chen/comments/commentRss/48259.htmlhttp://www.shnenglu.com/cheney-chen/services/trackbacks/48259.htmlOverview

Applications on Symbian OS use a standard set of conventions to name their classes, structs, variables, functions, macros, enumerations, and constants. This topic explains the meaning of these conventions.

 

Class names 

Most class names are formed with a prefix letter C, T, R, or M. Briefly, the meaning of these is as follows: 

  • C: heap-allocated classes, that are derived from a base class CBase

  • T: value classes, that do not own any external object

  • R: resource classes, that contain handles to a real resource which is maintained elsewhere

  • M: interface classes, that define abstract protocol definitions that are implemented by derived classes

    Classes that consist solely of static member functions have no prefix letter. Beyond the prefix, the class name is usually a noun that indicates the purpose of the class.


    Struct names

    Structure types are considered as similar to T classes, as they should not own external objects, and are normally given names beginning with T (although some begin with S).


    Variable names

    Member variables names begin with i, e.g. iMember. This makes it easy to check that certain cleanup-related rules are being obeyed. Arguments names begin with a, e.g. aControl or aIndex. Local variables names have no initial letter. Global variables are usually avoided, but when used, their names begin with a capital letter.

    Symbian OS does not use Hungarian or any notation which attempts to include the variable type in its name: such notations are ugly, and become impossible to manage when there are several hundred classes in the system. They are irrelevant anyway: functions are usually so short that it is easy to see the types of variables defined in them, and class browsers provide a quick way to find the types of class members.


    Function names

    Functions names indicate what they do. They are usually verbs. One exception is getter functions: for a function which returns the value of a member variable, the function name is usually the name of the variable, without the leading i:

    inline RWindow& Window() const { return iWindow; };

    A corresponding setter function would include the word Set, e.g. SetWindow().

    To terminate functions because of error conditions, Symbian OS does not use standard C++ exception handling, but its own system called leaving (see Cleanup Support Overview). Any function that might leave has a name ending in ...L(). This makes the fundamental process of checking for errors easier. The new (ELeave) function might also leave. The fundamental leaving function is User::Leave(). Any function that contains any of these, and does not trap them, might itself leave, and should be coded with a trailing L in its name. If a function calls another which might leave, then its name should have the L suffix also.

    Associated with the leaving mechanism, is the cleanup stack, which allows memory allocated on the heap to be recovered when a leave occurs. An allocation or construction function which places data on the cleanup stack ends with ...LC(). For instance, many new, PushL(), ConstructL() sequences are encapsulated in a NewLC() function:

    CS* s=CS::NewLC(p1, p2);

    This allocates the object, initialises it, and leaves it on the cleanup stack. This process may leave (if only through the PushL()!), so such functions always include an L, and are therefore ...LC().

    A function which takes ownership of its object and destroys it has a name ending in ...D(). An example is the UI framework dialog protocol:

    CEikDialog* dialog=new (ELeave) CBossSettingsDialog;
    if (dialog->ExecuteLD(R_BOSS_SETTINGS_DIALOG))
        {
        // handle successful settings
        }

    The ExecuteLD() function includes second-phase construction, execution of the dialog and then destruction.


    Macro names

    Macro names are all capitalised, with underscores to separates words.


    Enumeration names

    Enumerations are named as follows:

    • as enumerations are types, they have the T prefix
    • enumeration members have the prefix E
    • type and members should have a meaningful, unambiguous name

    Enumerations should be scoped within the relevant class, so as not to pollute the global name space.

    An example of the declaration and use of an enumeration is as follows:

    class TDemo
        {
    public:
        enum TShape {EShapeRound, EShapeSquare};
        };

    TDemo::TShape shape=TDemo::EShapeSquare;



    Constant names

    Names of constants have a prefix K. For example,

    const TInt KMaxNameLength=0x20;



  • cheney 2008-04-27 14:57 鍙戣〃璇勮
    ]]>
    青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            欧美日韩国产丝袜另类| 欧美三级日韩三级国产三级| 国产日韩欧美二区| 久久岛国电影| 久久精品亚洲乱码伦伦中文| 狠狠色狠狠色综合| 欧美肥婆在线| 欧美日韩高清区| 亚洲——在线| 欧美一区国产一区| 在线观看亚洲精品| 亚洲第一在线综合网站| 欧美激情五月| 欧美一级在线播放| 久久久99久久精品女同性| 亚洲欧洲三级| 亚洲午夜电影在线观看| 一区视频在线| 日韩亚洲精品视频| 国产日韩一级二级三级| 欧美大尺度在线观看| 欧美三级第一页| 久久这里有精品视频| 欧美日韩精品综合在线| 久久国产精品高清| 欧美激情欧美狂野欧美精品| 亚洲欧美日韩一区二区| 久久久久这里只有精品| 亚洲一区二区成人| 久久精品视频在线看| 夜夜嗨av色一区二区不卡| 午夜精彩国产免费不卡不顿大片| 亚洲高清资源| 午夜精品在线| 亚洲一区二区三| 久久天堂成人| 久久国产欧美精品| 欧美日韩在线一二三| 美女成人午夜| 国产日韩精品视频一区二区三区| 亚洲东热激情| 狠狠色伊人亚洲综合成人| 一区二区三区四区五区视频| 伊人婷婷久久| 性欧美大战久久久久久久免费观看| 亚洲精品乱码久久久久久黑人 | 亚洲国产成人av好男人在线观看| 国产精品视频yy9099| 亚洲国产裸拍裸体视频在线观看乱了中文 | 国产精品久久9| 亚洲电影网站| 在线观看精品视频| 亚洲欧美激情视频| 亚洲一二三区在线| 欧美高清视频一区| 欧美成人一区二区在线| 韩日视频一区| 欧美一区二区在线| 欧美一激情一区二区三区| 欧美日韩午夜剧场| 亚洲七七久久综合桃花剧情介绍| 在线免费观看成人网| 欧美亚洲自偷自偷| 欧美在线视频免费| 国产欧美大片| 欧美一区二区三区的| 欧美在线一级va免费观看| 国产精品久久久久影院色老大 | 久久综合999| 免费短视频成人日韩| 好吊成人免视频| 久久国产欧美日韩精品| 久久天堂国产精品| 黄色一区二区在线观看| 久久久久一区二区三区| 欧美成年人视频| 亚洲精品在线视频观看| 欧美黑人在线观看| 亚洲免费观看高清完整版在线观看熊 | 国产精品久久久久aaaa樱花| 中日韩视频在线观看| 亚洲在线日韩| 国产偷久久久精品专区| 久久精品天堂| 91久久久精品| 亚洲欧美日本另类| 国产一区二区按摩在线观看| 久久精品女人| 亚洲人体1000| 欧美中文字幕在线播放| 狠狠色丁香婷婷综合久久片| 麻豆亚洲精品| 日韩视频二区| 久久精品国产99精品国产亚洲性色 | …久久精品99久久香蕉国产| 免费欧美网站| 亚洲一区二区四区| 久久综合久久综合这里只有精品| 亚洲国产婷婷| 欧美日韩三级电影在线| 亚洲欧美综合精品久久成人| 你懂的视频一区二区| 亚洲午夜视频在线观看| 国内成+人亚洲| 欧美日韩视频在线一区二区| 欧美中文字幕视频在线观看| 亚洲国产影院| 久久大综合网| 99视频超级精品| 国产一区亚洲一区| 欧美日韩一区二区在线观看视频 | 欧美激情第1页| 午夜精品久久一牛影视| 亚洲黄一区二区三区| 国产精品激情电影| 免费中文日韩| 久久激情五月激情| av成人免费在线| 亚洲国产成人精品久久| 久久精品一区二区三区不卡| 一区二区精品在线观看| 亚洲成色www久久网站| 国产精品欧美日韩一区二区| 欧美不卡激情三级在线观看| 欧美影院精品一区| 在线一区二区三区做爰视频网站 | 欧美jizz19性欧美| 欧美一区影院| 亚洲影院色在线观看免费| 亚洲国产日韩欧美在线99| 国产精品一卡二卡| 欧美视频不卡中文| 欧美精品日韩一本| 欧美xart系列高清| 久久综合网hezyo| 久久er99精品| 性久久久久久| 欧美一区二区视频免费观看| 亚洲无线观看| 亚洲嫩草精品久久| 亚洲一区三区视频在线观看| 亚洲最黄网站| 一本久久综合亚洲鲁鲁| 亚洲九九精品| 日韩网站在线| 中文日韩在线视频| 一本色道久久综合亚洲精品不卡| 亚洲国产精品小视频| 亚洲电影免费观看高清完整版| 久久亚洲捆绑美女| 老司机凹凸av亚洲导航| 蜜乳av另类精品一区二区| 免费观看欧美在线视频的网站| 久久午夜国产精品| 免费久久99精品国产自在现线| 欧美freesex交免费视频| 欧美激情精品| 亚洲免费观看高清完整版在线观看| 亚洲人成高清| 亚洲午夜久久久久久尤物| 午夜精品久久久久久99热| 欧美一区二区在线播放| 久久一区二区精品| 欧美精品一区二区三区在线播放 | 欧美紧缚bdsm在线视频| 欧美日韩国产麻豆| 国产精品免费网站| 国产亚洲一二三区| 在线观看日韩欧美| 亚洲精品精选| 亚洲欧美区自拍先锋| 久久综合狠狠| 亚洲国产精品第一区二区| 99精品99久久久久久宅男| 亚洲欧美视频一区二区三区| 久久久99久久精品女同性| 欧美国产日韩一区二区| 国产精品五区| 亚洲高清网站| 亚洲综合第一页| 欧美成人国产| 亚洲一区免费视频| 免费不卡视频| 国产日产欧产精品推荐色 | 国产麻豆综合| 亚洲精品久久| 久久精品二区| 日韩一级欧洲| 久久亚洲精品一区二区| 国产精品国产亚洲精品看不卡15 | 99热免费精品在线观看| 欧美中文日韩| 99热这里只有精品8| 久久久久久精| 国产精品一级久久久| 99国产欧美久久久精品| 久久久久99| 亚洲综合色婷婷| 欧美日韩国产三区| 亚洲黄色有码视频|