J-XMoses

          J-XMoses

          2006年3月24日 #

          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 閱讀(470) | 評論 (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 閱讀(251) | 評論 (0)編輯 收藏

          I know Why I failed so many times in trying to connect mysql installed on other server

          Once upon a time, I see on some document telling that "updating the host field of user record to % can enable user connect to the mysql database from any host", so I followed the guide,tried from other side and failed.
          Today I finally found the reason:
          You need exec reload to make the change take effect using "./mysqladmim -uroot -p<your password> reload"

          So I can connect from other PC to the mysql Server.

          Just trick, but very useful.

          posted @ 2006-03-24 21:42 Java-XMoses 閱讀(291) | 評論 (0)編輯 收藏

          主站蜘蛛池模板: 崇阳县| 宁强县| 牙克石市| 易门县| 江油市| 准格尔旗| 朝阳区| 和平县| 资讯 | 东港市| 北辰区| 禹城市| 大方县| 灵山县| 宜兰市| 娱乐| 嘉峪关市| 大厂| 嘉禾县| 炎陵县| 旌德县| 庆云县| 长治县| 华池县| 嘉禾县| 杭锦后旗| 江川县| 海丰县| 遵化市| 阳朔县| 乾安县| 惠来县| 健康| 枞阳县| 旬阳县| 阜康市| 闻喜县| 保康县| 舞阳县| 商水县| 陇川县|