symbian初级入门

要使用一样工具,首先肯定是进行环境搭建了。

 

需要安装 ActivePerl 5.6.1.635,因为有些工具需要使用perl文件,这些工具同 ActiveState安装有关,所以在安装perl的时候确保该选项被选中。在安装perl之前应该安装SDK,个人经验。

JDK 1.5.0版本以上是需要的,在SDK之前应安装carbide。

carbide和S60SDK要安装在同一个盘符下,而且workspace也应在有SDK的目录下,同样个人经验。

mmp文件是项目定义文件,主要是source或是lib等文件定义;以平台无关和编译器无关的方法指定项目组件的属性。

bld.inf文件是工程引导文件,是一个脚本,可以包含多个mmp文件,指导编译环境工作。

 

开始正式接触编程:

Integer : TInt,TUint 至少32位;TInt8~TInt64.

Float-point:TReal,TReal64 都是标准64位;TReal32

TBool:TTure 和TFalse

TText:16位宽度,TText8:8位字符

TChar:32位宽度可以存储所有unicode字符。

TAny:TAny* 等价于void*

*和&应该紧挨类型旁边,比如TInt*  intRef;而不应该是TInt  *intRef;

命名规则:

不能有下划线,类名和函数名首字母大写;

局部变量以小写字母开头;

函数参数一小写字母a开头;

成员变量以小写字母i开头;

全局变量用大写字母开头,但是应尽量避免;

函数用动词,变量用名词;

getter 函数命名为VariableName() ;setter 函数命名为SetVariableName();

比如

class ClassName{};

TInt localVariable;

TInt iMemberVariable;

void DoSomethingL(TInt aFunctionAttr);

 

关键字与圆括号之间有一个空格: if  ()而不能写成if()

函数名与圆括号之间不应有空格:DoSomeThing()而不能写成DoSomething  ()

圆括号内应有一个空格,除非是():if  (())可以连续,但是if  ( value  ==  KMaxValue  )应该有空格在value和圆括号间

使用4个空格代替tab键

 

if ( value <= KMaxValue )
  { // use parentheses even if there’s just one line
  DoSomething( value )
  }
 
T classes:
T开头,无析构函数,类似struct,能包含指针和handles,但是不用delete;static class命名无前缀,直接为StaticClass;
C classes:
C开头,有虚析构函数继承于CBase,需要动态内存分配,需要delete,只有C类可用new创建,从CBase私有继承赋值运算符和拷贝构造函数,C类以NULL填充,内存分配和 construction topics are covered in next session,这句不是很理解,以后再说。
R classes:
R开头,资源文件,定义handle,没有通用的base class,没有通用界面。使用适当方法打开或关闭,基本不用用户自定义,比如
RTimer, RFile, RCall等。
M classes:
M开头,界面类,类似JAVA,虚方法,无成员变量,没有构造和析构函数或者类似等号那种重载符号。多重继承,使用纯虚方法不是必须的,常用于生效一个回调界面来获取系统事件的通知。
 enum中的值以E开头
class TExampleClass
  {
public:
  enum TShape 
    {
    EShapeRound,
    EShapeSquare
    };
  };

TExampleClass::TShape shape = TExampleClass::EShapeSquare;
 
 常量用K开头:应尽量定义在cpp文件里。
const TInt KMaxLength = 5;
 
 
dynamic_cast不能在symbian中使用;  
static_cast能被用于基础类型之间以及从基类到子类;  
reinterpret_cast能被用于指针之间以及整数和指针之间;  
const_cast能被用于去除常量性质。
 
Template:
尽量避免使用,因为要拷贝大量代码。  
首先定义基类包含所有代码;
TAny* 被使用;
再定义模板类使用T*参数作为子类;
创建内联函数调用父类函数,转换成T*;
 
class CTemplateClass<T> : public CBaseClass
  {
  inline const T& Function() const
    {
    return (*((const T*)CBaseClass::Function()));
    }
  };
 
 

你可能感兴趣的:(function,perl,delete,Class,Symbian,construction)