|
You need to add some extra methods in your class to return the data in whatever way the caller needs. Try rereading the C++ guide(s) or books on classes and how to use them.
MVP 2010 - are they mad?
|
|
|
|
|
What should i be looking for exactly when i read the book?
|
|
|
|
|
gregarion wrote: What should i be looking for exactly when i read the book?
The fact that you need to ask this question suggests you need to look at everything. If you do not understand how classes hold their data and how they return it to other objects/callers then you are missing the fundamentals of object oriented programming; a significant hole in your knowledge.
MVP 2010 - are they mad?
|
|
|
|
|
Richard MacCutchan wrote: The fact that you need to ask this question suggests you need to look at everything. If you do not understand how classes hold their data and how they return it to other objects/callers then you are missing the fundamentals of object oriented programming; a significant hole in your knowledge.
I vote a 10 for this one!
|
|
|
|
|
MVP 2010 - are they mad?
|
|
|
|
|
Well, you need something to "hold" the data that class A will retrieve.
for example If class A is simply reading data from a file, then class B could hold the data for it.
For example in MFC, you have the class CStdioFile that only reads text from a file, but in a software that use that class, I will need something to hold the text (for example a vector of text lines that are read).
Another variation, sometimes if the class is more or less specialized it could be used to read and hold data at the same time.
for example I could have a class MyStdIoFile that is derived from CStdioFile that will not only read from the file, but store the data internally.
class MyStdIoFile : public CStdioFile
{
public:
Read( CString path ){ };
protected:
vector<CString> m_Data;
}
again, there are tons of different ways of doing this, it's more a question of design than a question of code; who reads, who writes. who keep the data, who display the data, how is it read, how is it kept, how is it displayed.
Take a piece of paper and draw littles boxes representing your different objects and draw lines and arrows between them to show the relationships.
This signature was proudly tested on animals.
|
|
|
|
|
Okay , that sounds complicated. Basically why i need it to store the output given out in a certain class is because i need to use it for cppunit testing later on. Basically, each class in my project will give out a certain output based on the document it reads
For example, classA gives an output of 333.
ClassB gives an output of 434.
what i was trying to do is to try to save this values in a way that when i write my cppunit, i can use it to check if it is equal to the hardcoded input.
|
|
|
|
|
|
glitteringsound wrote: written in C#
What makes you think you can mention that abomination in this forum and live?
You measure democracy by the freedom it gives its dissidents, not the freedom it gives its assimilated conformists.
|
|
|
|
|
glitteringsound wrote: Any body can give the source of
In short, No. If you want source code then search the articles or Google. If you have a programming question then you may post it in the (correct) forums.
MVP 2010 - are they mad?
|
|
|
|
|
Hi there,
i was testing this the other day, and it compiles fine.
int Test(int a, int b, int c)<br />
{<br />
return a,b,c;<br />
}<br />
doing this;
printf("\n %d", Test(10,20,30));
will always give 30.
Can anyone explain what is actually happening in the code above, and why it is even possible to compile such a code? what does return a,b,c actually implies?
I never seen any code that does that, (all codes return 1 value), but if this code can compile, what does it mean?
(Tested using VC++2008)
|
|
|
|
|
The way the comma operator works is that it returns the last value. For instance:
int a = 1, 2, 3;
will result in a being 3. So your
return a,b,c;
is really equivalent to:
return c;
|
|
|
|
|
If so, what is the use of the comma operator? Is there real use for it?
|
|
|
|
|
for example it's used in the for statement.
for ( i = 0, j = 0;; i<100; i++, j++)
{
}
or in variable declarations:
int i, j;
and maybe many other places.
This signature was proudly tested on animals.
|
|
|
|
|
It can be overloaded. See Boost Assign[^] library for example:
vector<int> v;
v += 1,2,3,4,5,6,7,8,9;
|
|
|
|
|
Oh yes, comma is used in for loops. It's so common! I didn't realize it!
Thanks!
|
|
|
|
|
The comma operator evaluates bot operands, and evaluates to the result of the second one.
So the first operand is evaluated only for its side effects. One common use is:
<br />
while ( (c=getnextthingie(), c!=EOF) )<br />
{<br />
}<br />
here, the first operand has the side effect of calling getnextthingie and assigning the result to c. c!=EOF is evaluated as loop condition.
Personally, I love the idea that Raymond spends his nights posting bad regexs to mailing lists under the pseudonym of Jane Smith. He'd be like a super hero, only more nerdy and less useful. [Trevel] | FoldWithUs! | sighist | µLaunch - program launcher for server core and hyper-v server
|
|
|
|
|
uus831 wrote: Can anyone explain what is actually happening in the code above, and why it is even possible to compile such a code? what does return a,b,c actually implies?
See here and here.
"One man's wage rise is another man's price increase." - Harold Wilson
"Fireproof doesn't mean the fire will never come. It means when the fire comes that you will be able to withstand it." - Michael Simmons
"Man who follows car will be exhausted." - Confucius
|
|
|
|
|
Er, yeah, if you COULD declare your function as:
int, int, int Test(int a, int b, int c);
You might get 12 bytes on the stack for your return values, but C isnt made this way!
If you realy want to wedge more values into the 32 bits you are given you could cast say a short and two chars into an int.
return (x << 16 + y << 8 + z);
for example, and then pull it apart in the calling code.
Morality is indistinguishable from social proscription
|
|
|
|
|
I am using main "standard" property sheets for tabbed application.
I would like to have another property sheet embedded in the main tab(s).
I got as far as using CStatic variable in the page, but now I am stuck.
I tried this (snippet)
position = pDoc->GetFirstViewPosition();
COpenHRView *pOpenHR = (COpenHRView*) pDoc->GetNextView(position);
if(pOpenHR->m_pPropFrame1);
{
m_sstv.Detach(); // added this when Attach asserted – no go asserts
m_sstv.Attach(pOpenHR->m_pPropFrame1->GetSafeHwnd()); // asserts– attach only once
}
return CpropertyPage::OnSetActive();
Thanks for reading. Any constructive help as always is appreciated.
|
|
|
|
|
Hey guys, i am trying to test one of my classes using cppunit.
the class is suppose to extract data out of a certain text file and then displays it...
Code:
void readNasdaq::Nasdaq(fstream& myfile)
{
string templine ;
string line;
while (getline (myfile,templine) )
{
line.append(templine);
}
int NasdaqValueID = line.find ("id=\"yfs_l10_^ixic\">" , 0) ;
int NasdaqValueCount = line.find ("</span></td><td class=\"ticker_down\"><span class=\"streaming-datum\" id=\"yfs_c10_^ixic\">" , 0) ;
int LocationNasdaqValue = NasdaqValueID + 19 ;
int LengthOfNasdaqValue = NasdaqValueCount - LocationNasdaqValue ;
string NasdaqValue = line.substr( LocationNasdaqValue , LengthOfNasdaqValue ) ;
cout << " " << endl ;
cout << "The Value Index of Nasdaq is " << NasdaqValue << endl ;
int NasdaqValueChangeID = line.find ("id=\"yfs_c10_^ixic\">" , 0 ) ;
int NasdaqValueChangeCount = line.find ("</span></td><td class=\"right_cell ticker_down\"><span class=\"streaming-datum\" id=\"yfs_pp0_^ixic\">" , 0) ;
int LocationNasdaqValueChange = NasdaqValueChangeID + 19 ;
int LengthOfNasdaqValueChange = NasdaqValueChangeCount - LocationNasdaqValueChange ;
string NasdaqValueChange = line.substr (LocationNasdaqValueChange , LengthOfNasdaqValueChange ) ;
cout << "The Value Change for Nasdaq is " << NasdaqValueChange << endl ;
the problem i have with my cppunit is how am i suppose to read the value being outputted and test it...
Code:
#include "financetest.h"
#include "finance.h"
CPPUNIT_TEST_SUITE_REGISTRATION (FinanceTest);
void FinanceTest::setUp()
{
New = " ";
NewValue = " " ;
}
void FinanceTest::tearDown()
{
}
void FinanceTest::testEquals()
{
}
How can i continue from here.. really need some help from this
|
|
|
|
|
I know it's early, but I'm not seeing what readNasdaq::Nasdaq() has to do with your question.
As I understand it, CppUnit is a framework for creating unit tests in C++. What does this have to do with extracting data out of a text file and displaying it?
"One man's wage rise is another man's price increase." - Harold Wilson
"Fireproof doesn't mean the fire will never come. It means when the fire comes that you will be able to withstand it." - Michael Simmons
"Man who follows car will be exhausted." - Confucius
|
|
|
|
|
Sorry, what i meant was to show my class and how it get the information i want to be displayed. I got to use cppunit to test this class to show that it is extracting the right information.
For example, if the class extracts "a" , i will have to compare it to the cppunit test and see if it has the same value also.
The problem i am facing is how do i do a test based on the output.
|
|
|
|
|
Hallo,
I use a tabbed Dialog, which shows several Dialogs in it. The tabbed Dialog is resized to the size of its MDI Window.
The problem is, that if the MDI Window is resized to a smaller size then the dialog in the tabbed control, the dialog in the tabbed control is not shown completely.
So I want to know not the window rect of the dialog in the tabbed dialog, but the size of my form template, which I designed in the form editor of Visual C++ 6
So my main question is:
Is it possible to get the height and with of my form as it is in the editor, so to speak the size of my, for example, IDD_MAIN_DIALOG resource my CDialog derived class?
Thank you for your help!
|
|
|
|
|
use GetWindowRect() function to get rectangle for the dialog box and then a simple math will solve your problem
|
|
|
|
|