Does the order of declaration of data members in T reflect the order in which data is represented in memory?
In limited situations yes.
See Section 9 Classes [class] paragraph 7 (Look for details about A standard-layout class)
But in general no. There are no guarantees about the order of members in different protected/private/public regions.
If the order is preserved, are data member alignments also preserved no matter how bigger is the size of the allocated memory?
What do you mean preserved. The compiler decides for you. Once they are defined for a class they are constant through the code.
I want to construct an object of class T by using ::operator new(size_t) and placement new.
This is guaranteed. As long as you use new to allocate a block of memory at lease the same size as T then it is guaranteed to be aligned correctly for objects of type T.
3.1.1 Alignment [basic.align]
Paragraph 5:
Alignments have an order from weaker to stronger or stricter alignments. Stricter alignments have larger alignment values. An address that satisfies an alignment requirement also satisfies any weaker valid alignment requirement.
Thus if you have an object that is aligned to stricter requirement it is guaranteed to be aligned for weaker alignments. Thus space aligned for something that that is larger than T is also aligned for objects of size T.
5.3.4 New [expr.new]
Paragraph 10
A new-expression passes the amount of space requested to the allocation function as the first argument of type std::size_t. That argument shall be no less than the size of the object being created; it may be greater than the size of the object being created only if the object is an array. For arrays of char and unsigned char, the difference between the result of the new-expression and the address returned by the allocation function shall be an integral multiple of the strictest fundamental alignment requirement (3.11) of any object type whose size is no greater than the size of the array being created. [ Note: Because allocation functions are assumed to return pointers to storage that is appropriately aligned for objects of any type with fundamental alignment, this constraint on array allocation overhead permits the common idiom of allocating character arrays into which objects of other types will later be placed. — end note ]