J-XMoses

          J-XMoses

          2007年3月22日 #

          typedef keyword in C++

          read this article -> http://www.functionx.com/cpp/keywords/typedef.htm
          It said that "The typedef keyword can be followed by an attribute before the data type. In its simplest form, the attribute can be that of an access level such as public, private, or protected." and provide a examples:


          #include <iostream>
          #include <string>
          using namespace std;
          
          typedef struct Student;
          typedef class Country;
          
          typedef public short SmallNumber;
          typedef private unsigned int Positive;
          typedef protected double* PDouble;
          typedef public string FiveStrings[5];
          typedef private double (*Addition)(double value1, double value2);
          
          struct Student
          {
          	string FirstName;
          	string LastName;
          };
          
          typedef struct _Empl
          {
          	string FullName;
          	double HourlySalary;
          }Employee;
          
          class Country
          {
          	string Name;
          	string Capital;
          	string Code;
          };
          
          double Add(double x, double y)
          {
          	double result = x + y;
          	return result;
          }
          
          typedef enum EmplStatus { esFullTime, esPartTime, esContractor };
          typedef Student *PStudent;
          typedef Country *PCountry;
          
          int main()
          {
          	Student pupil;
          	Country pais;
          	EmplStatus emplst;
          	PStudent ptrStd = new Student;
          	PCountry pPais = new Country;
          
          	return 0;
          }


          I found that I can't compile it on my Linux using g++.


          [root@sd1 xxx]# g++ typedef.cpp -o typedef
          typedef.cpp:8: error: expected unqualified-id before 'public'
          typedef.cpp:9: error: expected unqualified-id before 'private'
          typedef.cpp:10: error: expected unqualified-id before 'protected'
          typedef.cpp:11: error: expected unqualified-id before 'public'
          typedef.cpp:12: error: expected unqualified-id before 'private'


          Why, can anybody tell me?
          :)

          posted @ 2007-03-22 17:48 Java-XMoses 閱讀(472) | 評論 (0)編輯 收藏

          C++ operator precedence

          C++ operator precedence
          http://www.cppreference.com/operator_precedence.html

          PrecedenceOperatorDescriptionExampleAssociativity
          1()
          []
          ->
          .
          ::
          ++
          --
          Grouping operator
          Array access
          Member access from a pointer
          Member access from an object
          Scoping operator
          Post-increment
          Post-decrement
          (a + b) / 4;
          array[4] = 2;
          ptr->age = 34;
          obj.age = 34;
          Class::age = 2;
          for( i = 0; i < 10; i++ ) ...
          for( i = 10; i > 0; i-- ) ...
          left to right
          2!
          ~
          ++
          --
          -
          +
          *
          &
          (type)
          sizeof
          Logical negation
          Bitwise complement
          Pre-increment
          Pre-decrement
          Unary minus
          Unary plus
          Dereference
          Address of
          Cast to a given type
          Return size in bytes
          if( !done ) ...
          flags = ~flags;
          for( i = 0; i < 10; ++i ) ...
          for( i = 10; i > 0; --i ) ...
          int i = -1;
          int i = +1;
          data = *ptr;
          address = &obj;
          int i = (int) floatNum;
          int size = sizeof(floatNum);
          right to left
          3->*
          .*
          Member pointer selector
          Member pointer selector
          ptr->*var = 24;
          obj.*var = 24;
          left to right
          4*
          /
          %
          Multiplication
          Division
          Modulus
          int i = 2 * 4;
          float f = 10 / 3;
          int rem = 4 % 3;
          left to right
          5+
          -
          Addition
          Subtraction
          int i = 2 + 3;
          int i = 5 - 1;
          left to right
          6<<
          >>
          Bitwise shift left
          Bitwise shift right
          int flags = 33 << 1;
          int flags = 33 >> 1;
          left to right
          7<
          <=
          >
          >=
          Comparison less-than
          Comparison less-than-or-equal-to
          Comparison greater-than
          Comparison geater-than-or-equal-to
          if( i < 42 ) ...
          if( i <= 42 ) ...
          if( i > 42 ) ...
          if( i >= 42 ) ...
          left to right
          8==
          !=
          Comparison equal-to
          Comparison not-equal-to
          if( i == 42 ) ...
          if( i != 42 ) ...
          left to right
          9&Bitwise ANDflags = flags & 42;left to right
          10^Bitwise exclusive ORflags = flags ^ 42;left to right
          11|Bitwise inclusive (normal) ORflags = flags | 42;left to right
          12&&Logical ANDif( conditionA && conditionB ) ...left to right
          13||Logical ORif( conditionA || conditionB ) ...left to right
          14? :Ternary conditional (if-then-else)int i = (a > b) ? a : b;right to left
          15=
          +=
          -=
          *=
          /=
          %=
          &=
          ^=
          |=
          <<=
          >>=
          Assignment operator
          Increment and assign
          Decrement and assign
          Multiply and assign
          Divide and assign
          Modulo and assign
          Bitwise AND and assign
          Bitwise exclusive OR and assign
          Bitwise inclusive (normal) OR and assign
          Bitwise shift left and assign
          Bitwise shift right and assign
          int a = b;
          a += 3;
          b -= 4;
          a *= 5;
          a /= 2;
          a %= 3;
          flags &= new_flags;
          flags ^= new_flags;
          flags |= new_flags;
          flags <<= 2;
          flags >>= 2;
          right to left
          16,Sequential evaluation operatorfor( i = 0, j = 0; i < 10; i++, j++ ) ...left to right


          Finally, I find basic knowledge is important.

          posted @ 2007-03-22 17:11 Java-XMoses 閱讀(254) | 評論 (0)編輯 收藏

          主站蜘蛛池模板: 泗阳县| 酉阳| 贵阳市| 云龙县| 剑川县| 曲麻莱县| 长寿区| 洪洞县| 天台县| 金门县| 汝州市| 纳雍县| 渝中区| 柳江县| 庆阳市| 高台县| 合山市| 红安县| 江都市| 三河市| 两当县| 兴文县| 满洲里市| 盈江县| 南安市| 吕梁市| 县级市| 公安县| 青海省| 耒阳市| 鹿泉市| 临朐县| 香格里拉县| 安丘市| 云龙县| 陇西县| 苏尼特左旗| 禹州市| 雷州市| 涟源市| 贵定县|