J-XMoses

          J-XMoses

          2006年3月1日 #

          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)編輯 收藏

          kbps or Kbps

          Short for kilobits per second, a measure of data transfer speed. Modems, for example, are measured in Kbps. Note that one Kbps is 1,000 bits per second, whereas a KB (kilobyte) is 1,024 bytes. Data transfer rates are measured using the decimal meaning of K whereas data storage is measured using the powers-of-2 meaning of K. Technically, kbps should be spelled with a lowercase k to indicate that it is decimal but almost everyone spells it with a capital K.

          posted @ 2006-03-03 17:40 Java-XMoses 閱讀(200) | 評論 (0)編輯 收藏

          The META-INF directory in the JAR file

          The META-INF directory, if it exists, is used to store package and extension configuration data, including security, versioning, extension and services.
          The following files/directories in the META-INF directory are recognized and interpreted by the Java 2 Platform to configure applications, extensions, class loaders
          and services:

          • MANIFEST.MF

          .................

          Tag libraries should be packed with their .tlds packed in their META-INF directory. JSP engines look through the JAR files in the /lib directory for TLDs and add the tags as necessary. Then when you are installing tag libraries, you only need to deliver one file - the JAR - no changes to the web.xml, no extra tlds hanging around.

          posted @ 2006-03-01 21:39 Java-XMoses 閱讀(352) | 評論 (0)編輯 收藏

          主站蜘蛛池模板: 分宜县| 合作市| 大宁县| 遂溪县| 广宁县| 威远县| 桦川县| 连江县| 武功县| 新民市| 正阳县| 横山县| 平遥县| 台州市| 滨州市| 枣庄市| 龙陵县| 湛江市| 中方县| 麻江县| 南宁市| 缙云县| 瑞安市| 清水县| 南涧| 镇康县| 木兰县| 正宁县| 禄丰县| 高安市| 平谷区| 应城市| 娱乐| 齐河县| 镇沅| 阜城县| 连城县| 金塔县| 景东| 白朗县| 中西区|