|
RChin wrote: From the feedback I've been reading here, it seems that I might not need VAssistX with VS2005 due to vastly improved intellisense features
i think we've not read the same threads buddy !
what i've seen there about VS2005' intellisense is that it has been highly improved, but not for C++...
moreover, visual assist was really powerful on both VC6 and VS2003, ,so i hope that it can still improve productivity, even on VS2005
TOXCCT >>> GEII power [toxcct][VisualCalc 2.20][VCalc 3.0 soon...]
-- modified at 12:52 Wednesday 1st February, 2006
|
|
|
|
|
toxcct wrote: about VS2005' intellisense is that it has been highly improved, but not for C++...
Urgghh! NOooooooo!!!!!!
I Dream of Absolute Zero
|
|
|
|
|
|
you know what, Intelli-sence is a good feature, but it greatly reduces the ability to think or remember and it is a big problem when u move to some other platform or programming lang where these features are not there.
Yes reading the documentation is a tedious job, but you know what, everytime i look at the document to read something about the api or search for an api, I learn something new.
I like it this way, so I am not too upset with intelli-sence working or not.
CPHog is great!!!
|
|
|
|
|
|
toxcct wrote: you still code inside notepad ???
How can I forget the good ol' notepad.
No intellisense, only your common sense works there. He he;P
Owner drawn
Jesus Loves
|
|
|
|
|
I am curious about something dealing with constructors in dialog classes. I have seen a certain way of doing the constructor and I wonder if it actually buys anything. Here is what I am talking about:
FOO::FOO(CWnd* pParent /*=NULL*/)
: CDialog(FOO::IDD, pParent),
m_pSomeObject( NULL ),
m_bSomeBoolean( false ),
m_iSomeInt( 0 ),
m_sSomeString( "" )
{
//{{AFX_DATA_INIT(FOO)
// NOTE: the ClassWizard will add member initialization here
//}}AFX_DATA_INIT
}
Now m_pSomeObject, m_bSomeBoolean, m_iSomeInt, and m_sSomeString are member variables of the class. So, they are being initialized. Is this method of defining a constructor better than doing it this way?
FOO::FOO(CWnd* pParent /*=NULL*/)
: CDialog(FOO::IDD, pParent)
{
//{{AFX_DATA_INIT(FOO)
// NOTE: the ClassWizard will add member initialization here
//}}AFX_DATA_INIT
m_pSomeObject = NULL;
m_bSomeBoolean = false;
m_iSomeInt = 0;
m_sSomeString = "";
}
It is not importaint that it be a dialog class, this is just where I am seeing it used. I am just wondering what the advantages of one over the other are, or if there are advantages?
Thanks,
Troy
|
|
|
|
|
It is better to use the contructor syntax.
1. It is the only way to initialize reference member variables in your class. If you have any.
2. Let's say you have an object that has two contructors defined as
class A
{
public:
A()
{
DoSomeStuff();
}
A(int x)
{
DoSomeStuff(x);
}
A& operator = (int x)
{
Cleanup();
DoSomeStuff(x);
}
};
Now lets say you want to contain an object of this class in another class.
class B
{
private:
A a;
};
You can initialize in two ways
B::B()
: a(5)
{
}
or
B::B()
{
a = 5;
}
If you are not initializing the object in the constructor initialization list like that in the second case. The object will be initialized using the default constructor i.e. DoSomeStuff will be called and then when the contrsuctor code within the block gets processed the assignment operator will be called. In the first case only the constructor of A that takes int argument gets called.
|
|
|
|
|
It was not clear to me. So, is it better to do it this way?
Rama Krishna Vavilala wrote:
<br />
B::B()<br />
: a(5)<br />
{<br />
}
Or this way?
Rama Krishna Vavilala wrote:
<br />
B::B()<br />
{<br />
a = 5;<br />
}
Which one is "Constructor Syntax"?
|
|
|
|
|
The former is the proper way to do it (that's called a constructor initialization list).
Regards,
Nish
|
|
|
|
|
I think I am seeing this now. The one question I have is does the constructor initialization list buy you anything for primitive data types? It seems a waste for that and they would be better to initialize in the body of a constructor or in an initialization member function.
|
|
|
|
|
Only problem is when you have multiple constructors. So if your initialization list is huge, you need to copy/paste that for every constructor overload. In such cases a better solution might be to use an Init function that's called by all these constructors.
Regards,
Nish
|
|
|
|
|
The former is referred to as an initialization list. One benefit, if you need it, is improved performance. The latter is an assignment, which could cause a temporary object to be created. If the member variables you are initializing are intrinsic types (e.g., int , char ), there is no difference in performance.
"The greatest good you can do for another is not just to share your riches but to reveal to him his own." - Benjamin Disraeli
|
|
|
|
|
|
Aaaahhhhh.... The forum that Shall Not Be NamedTM
There's quite a few members here (including me) who left That Other Place when they sold their soul to the devil... This site was set up initially for that very reason.
Ryan "Punctuality is only a virtue for those who aren't smart enough to think of good excuses for being late" John Nichol "Point Of Impact"
|
|
|
|
|
Scott Meyers, in "Effective C++" says to "Prefer initialization to assignment in constructors" (Item 12)
"From a purely pragmatic point of view, there are times when the initialization list must be used. In particular, const and reference members may only be initialized, never assigned."
There is also a question of efficiency: "When a member initialization list is used, only a single string member function is called. When assignment inside the constructor is used, two are called. . . Even in the case of the lowly string type, the cost of an unnecessary function call may be significant, and as classes become larger and more complex, so do their constructors, and so does the cost of constructing objects. If you establish the habit of using a member initialization list whenever you can, not only do you satisfy a requirement for const and reference members, you also minimize the chances of initializing data members in an inefficient manner."
check out the book for the whole article--good stuff!
----------------------------------------
Please reply in the forum--my email is filtered
|
|
|
|
|
|
Is there a way in MS VC++ 6.0 and/or VS 6.0 to export a dialog (buttons, dropdowns, etc.) and import it into a VB form or vice versa? I am in a position where I have to create some screens in VB that exist in VC++. I would prefer not to have to re-make the screens, i.e. add all the buttons, listboxes, etc again.
Thanks,
Troy
|
|
|
|
|
Something *might* exist but I'm not aware of anything.
"The greatest good you can do for another is not just to share your riches but to reveal to him his own." - Benjamin Disraeli
|
|
|
|
|
I was thinking something probably does exist, I just don't know about it. If you do find somehting, let me know.
Thanks.
|
|
|
|
|
since you have to redo all of the "connections" ( callbacks and all that junk ) in VB, I think that it might be faster to just redo the forms in VB ...
maybe there's an .rc import in VB ?
Maximilien Lincourt
Your Head A Splode - Strong Bad
|
|
|
|
|
followings are copied from VC help (in LOGFONT)
===========================
For the MM_TEXT mapping mode, you can use the following formula to specify a height for a font with a specified point size:
lfHeight = -MulDiv(PointSize, GetDeviceCaps(hDC, LOGPIXELSY), 72);
============================
the value GetDeviceCaps(hDC, LOGPIXELSY) is 600;
so formula above is:
lfHeight=-PointSize*600/72;
if PointSize=90,
lfHeight=-90*600/72=-750.
I think the result is incorrect.
what is problem?
A nice tool for optimizing your Microsoft html-help contents.
Includeh10
|
|
|
|
|
includeh10 wrote: I think the result is incorrect.
Looks right to me: 90pt is roughly 1.25", so if an inch is 600px then 750px should give you an inch and a quarter (the correct result). Why would you think this is wrong?
----
Calvin's my hero. It used to be Shog but then I saw where he made a programming mistake and admitted it publicly. I didn't know Shog made mistakes so now he's 2nd on "The All Time Hero List" and Calvin is back at #1.
- code-frog, Calling Cookie Experts...
|
|
|
|
|
hello,
i've been using vc6 standard edition for a few years now, developing various c++ and MFC applications; i looked at microsoft's visual studio web site, and was overwhelmed by the choices. is there any downside to staying with good-old 6.0? if so, are there any recommendations regarding express versus standard versus professional versus super-extra-special? all i want to do is c++, and mfc if it'll continue to be supported (i'm having my doubts about that).
thanks,
ed
apologies if this is the wrong discussion board for this question....
|
|
|
|
|
See here.
"The greatest good you can do for another is not just to share your riches but to reveal to him his own." - Benjamin Disraeli
|
|
|
|