锘??xml version="1.0" encoding="utf-8" standalone="yes"?>久久久999,欧美激情一区二区三区在线,久热爱精品视频线路一http://m.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://m.shnenglu.com/cheney-chen/articles/Name_Conventions_for_Applications_on_Symbian_OS.htmlcheneycheneySun, 27 Apr 2008 06:57:00 GMThttp://m.shnenglu.com/cheney-chen/articles/Name_Conventions_for_Applications_on_Symbian_OS.htmlhttp://m.shnenglu.com/cheney-chen/comments/48259.htmlhttp://m.shnenglu.com/cheney-chen/articles/Name_Conventions_for_Applications_on_Symbian_OS.html#Feedback1http://m.shnenglu.com/cheney-chen/comments/commentRss/48259.htmlhttp://m.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>
            亚洲一区二区三区乱码aⅴ蜜桃女 亚洲一区二区三区乱码aⅴ | 久久尤物视频| 中日韩美女免费视频网站在线观看| 亚洲电影在线看| 亚洲国产精品va在看黑人| 亚洲激情影视| 夜夜夜久久久| 亚洲男人av电影| 久久久另类综合| 欧美激情第9页| 亚洲最新在线视频| 亚洲欧美怡红院| 久热精品视频在线| 欧美精品乱码久久久久久按摩| 欧美日韩精品二区第二页| 国产精品成人aaaaa网站| 国产日韩在线亚洲字幕中文| 亚洲国产1区| 亚洲欧美日韩综合| 欧美成年视频| 亚洲免费一在线| 久久久五月婷婷| 欧美四级在线| 亚洲高清激情| 欧美一区二区日韩一区二区| 欧美成人综合| 午夜欧美大片免费观看| 欧美大片在线观看| 国产一区二区高清| 在线中文字幕一区| 欧美国产三区| 国产一区二区三区精品欧美日韩一区二区三区 | 夜夜嗨av色综合久久久综合网| 亚洲自拍偷拍色片视频| 欧美电影在线播放| 国内一区二区在线视频观看| 亚洲特色特黄| 亚洲国产日韩欧美在线图片 | 久久久国际精品| 日韩亚洲在线| 欧美黄色小视频| 国产日韩欧美中文在线播放| 99综合视频| 欧美激情一区二区三区全黄 | 亚洲精品视频一区二区三区| 欧美专区福利在线| 99精品欧美| 欧美国产一区二区| 精品福利免费观看| 久久久久久久综合狠狠综合| 一道本一区二区| 欧美成人午夜影院| 亚洲国产精品视频| 免费在线亚洲欧美| 久久香蕉精品| 伊人久久大香线蕉av超碰演员| 亚欧成人在线| 亚洲欧美制服中文字幕| 国产精品第三页| 午夜精品久久久久久99热软件| 日韩小视频在线观看专区| 欧美精品18+| 99国产麻豆精品| 日韩一级免费观看| 国产精品jizz在线观看美国 | 这里只有精品丝袜| 日韩一区二区精品在线观看| 欧美喷潮久久久xxxxx| 99精品欧美一区二区三区| 亚洲人线精品午夜| 欧美日韩专区| 欧美一区二区播放| 欧美一区二区三区视频在线观看 | 久久夜色精品亚洲噜噜国产mv| 久久精品人人做人人爽| 久久黄色网页| 久久精品九九| 亚洲欧洲综合另类在线| 亚洲国产成人av好男人在线观看| 另类专区欧美制服同性| 亚洲人久久久| 一区二区三区日韩欧美精品| 国产伦精品一区二区三区免费迷| 久久精品日韩欧美| 老司机一区二区| 在线亚洲+欧美+日本专区| 亚洲视频在线一区观看| 国产亚洲欧美日韩精品| 欧美大成色www永久网站婷| 欧美激情1区2区| 欧美亚洲一区二区在线观看| 欧美专区日韩视频| 日韩视频免费观看高清完整版| 99re热这里只有精品免费视频| 国产免费一区二区三区香蕉精| 你懂的视频欧美| 国产精品大片wwwwww| 欧美fxxxxxx另类| 国产精品黄页免费高清在线观看| 老牛国产精品一区的观看方式| 欧美精品系列| 久热国产精品视频| 国产精品久久久久久久第一福利| 久久综合伊人77777麻豆| 欧美日韩ab片| 蜜乳av另类精品一区二区| 国产精品vip| 亚洲丰满在线| 韩国av一区二区| 一区二区三区久久精品| 亚洲国产成人精品久久久国产成人一区 | 亚洲精品国精品久久99热| 国产精品嫩草影院一区二区| 免费欧美日韩| 国产视频综合在线| 老司机67194精品线观看| 国产精品爱久久久久久久| 亚洲国产日韩欧美一区二区三区| 国产亚洲成年网址在线观看| 91久久中文| 亚洲高清视频一区二区| 欧美一区二区三区久久精品| 亚洲自拍三区| 欧美高清影院| 亚洲电影成人| 在线看国产日韩| 性色一区二区三区| 亚洲手机视频| 欧美日韩一区在线播放| 亚洲国产欧洲综合997久久| 影音先锋中文字幕一区| 久久久精品国产99久久精品芒果| 国产精品激情电影| 欧美精品激情blacked18| 亚洲午夜精品久久久久久app| 亚洲免费在线播放| 性做久久久久久久久| 亚洲国产精品专区久久| 欧美一级专区免费大片| 亚洲一区二区三区高清不卡| 欧美国产精品| 亚洲国产精品激情在线观看| 永久免费精品影视网站| 亚洲欧美日韩国产一区| 亚洲欧美欧美一区二区三区| 欧美精品久久一区二区| 99在线|亚洲一区二区| 99在线观看免费视频精品观看| 欧美99久久| 精品999日本| 美女精品一区| 亚洲欧洲在线一区| 99re热这里只有精品免费视频| 欧美日本一道本| 99在线精品视频在线观看| 亚洲欧美一区二区三区久久 | 久久精品99国产精品| 欧美一区91| 伊人色综合久久天天| 免费成人黄色av| 99视频精品全部免费在线| 欧美一区二区精品| 国产一区清纯| 老司机精品导航| 日韩视频专区| 久久国产欧美| 亚洲欧洲综合| 国产精品任我爽爆在线播放| 久久国产精品一区二区三区| 欧美电影免费观看大全| 中日韩高清电影网| 国产午夜亚洲精品不卡| 欧美成年人网站| 亚洲视频视频在线| 国产三级欧美三级| 欧美黄色片免费观看| 午夜国产一区| 欧美激情在线观看| 午夜一区在线| 亚洲精品久久久久久久久久久久久 | 亚洲国产成人午夜在线一区| 日韩视频亚洲视频| 国产欧美日韩在线视频| 欧美大片在线观看| 久久激情综合网| 亚洲伦伦在线| 欧美a级理论片| 午夜一区在线| 亚洲图片欧美一区| 亚洲国产精选| 伊人成人网在线看| 国产精品自拍在线| 麻豆精品在线播放| 国产精品免费aⅴ片在线观看| 久久亚洲图片| 亚洲一区精品视频| 亚洲六月丁香色婷婷综合久久| 国产伦精品一区二区三区照片91 | 亚洲自拍偷拍福利| 一区二区三区 在线观看视|