473,224 Members | 1,661 Online
Bytes | Software Development & Data Engineering Community
Post Job

Home Posts Topics Members FAQ

Join Bytes to post your question to a community of 473,224 software developers and data experts.

passing argument in STL loop ?

I am still learning, could someone
show/explain to me how to fix the error.
I can see it is being wrong but do not know how to fix.
could you also recommend a book that I can ref. to ?
////////////////// ERROR MESSAGE /////////////////////
bash-2.05b$ g++ test5c.cpp
test5c.cpp: In function `int main()':
test5c.cpp:36: error: invalid initialization of reference of type
'astruct&'
from expression of type 'std::string'
test5c.cpp:20: error: in passing argument 1 of `void
dog_name(astruct&)'
test5c.cpp: In function `void dog_name(astruct&)':
test5c.cpp:49: error: overloaded function with no contextual type
information
test5c.cpp:49: error: base operand of `->' is not a pointer
bash-2.05b$
////////////////////// SOURCE CODE //////////////////////////////
#include<iostream>
#include <string>
#include<vector>
#include<sstream>
#include<fstream>
using namespace std;
struct astruct
{
string name;
int id;
string type;

};
#define goldenretriever 11
#define Lab 33
#define Boxer 44
#define Terrier 55

void dog_name (astruct& astructref);
int main()
{
vector<astruct> v;
astruct astr;
ifstream in ("test5c.txt");
string line;
while (getline(in,line)){
istringstream anyname(line);
anyname>>astr.name>>astr.id>>astr.type;
v.push_back(astr);
}
vector<astruct>::iterator search;
for (search=v.begin();search!=v.end();++search){
switch (search->id){
case goldenretriever:
dog_name(search->name);
break;
case Lab:
cout <<search->name <<" is Lab. "<<endl;
default:
break;
break;
}
}
return 0;
}
void dog_name (astruct& s){
cout <<search->name <<" is GoldenRetriever "<<endl;
}
////////////////////// INPUT FILE "test5c.txt" ///////////////////

cricket 11 GoldenRetriever
nitro 11 GoldenRetriever
Maxtor 33 Lab
Aaxtor 44 Boxer
Dora 55 Terrier

Jan 20 '06 #1
3 2346
sd2004 wrote:
could you also recommend a book that I can ref. to ?


To learn: Koenig & Moo, Accelerated C++
For reference: Stroustrup, The C++ Programming Language

Best regards,

Tom

Jan 21 '06 #2
sd2004 <tv****@hotmail.com> wrote:
I am still learning, could someone
show/explain to me how to fix the error.
I can see it is being wrong but do not know how to fix. ////////////////// ERROR MESSAGE /////////////////////

bash-2.05b$ g++ test5c.cpp
test5c.cpp: In function `int main()':
test5c.cpp:36: error: invalid initialization of reference of type
'astruct&'
from expression of type 'std::string'
test5c.cpp:20: error: in passing argument 1 of `void
dog_name(astruct&)'
Here is your function prototype: void dog_name (astruct& astructref);
Here is your definition of astruct: struct astruct
{
string name;
int id;
string type;
};
This is your iterator: vector<astruct>::iterator search;
Here is how you call dog_name: dog_name(search->name);
search->name is equivalent to (*search).name, and (*search) is of type
astruct, so you are passing the "name" member (which is of type string)
of the astruct associated with the current iterator. Therefore you are
passing a string into your dog_name() function, but dog_name() is
expecting a reference to an astruct.
test5c.cpp: In function `void dog_name(astruct&)':
test5c.cpp:49: error: overloaded function with no contextual type
information
test5c.cpp:49: error: base operand of `->' is not a pointer void dog_name (astruct& s){
cout <<search->name <<" is GoldenRetriever "<<endl;
}
You use operator-> with pointers (and pointer-like types, like
iterators) to refer to members of structs or classes. You use operator.
to refer to members of structs or classes when they are actual objects,
or references to objects. Also, you are using the wrong variable in
your function, and the parameter should be const since you are not
changing it.
could you also recommend a book that I can ref. to ?


The C++ FAQ is a good source of information:
http://www.parashift.com/c++-faq-lite/

There is also the newsgroup:
alt.comp.lang.learn.c-c++
which is more geared towards beginners.

For book recommendations, check out:
http://www.accu.org/

--
Marcus Kwok
Jan 21 '06 #3
Thanks for taking your time. I really appreciated.
After reading your thread. I did fixed the code and it worked.

Jan 21 '06 #4

This thread has been closed and replies have been disabled. Please start a new discussion.

Similar topics

8
by: Alex Vinokur | last post by:
Various forms of argument passing ================================= C/C++ Performance Tests ======================= Using C/C++ Program Perfometer...
5
by: kazack | last post by:
I am a little confused with code I am looking at. My c++ book does not go into passing a structure to a function so I pulled out a c book which does. and I do not understand the prototype verses...
3
by: domeceo | last post by:
can anyone tell me why I cannot pass values in a setTimeout function whenever I use this function it says "menu is undefined" after th alert. function imgOff(menu, num) { if (document.images) {...
3
by: K. Deepa | last post by:
Hi all, I am using postgresql7.4. How to handle arrays in plpgsql. How can I pass an array. Is it possible to retrieve values from an array by indexing it like argument : '{1,2,3}' Return...
3
by: Goh, Yong Kwang | last post by:
I'm trying to create a function that given a string, tokenize it and put into a dynamically-sized array of char* which is in turn also dynamically allocated based on the string token length. I...
10
by: Pete | last post by:
Can someone please help, I'm trying to pass an array to a function, do some operation on that array, then return it for further use. The errors I am getting for the following code are, differences...
5
by: jlea | last post by:
I'm trying to pass a filename, obtained with using the fileName property from the OpenFileDialog, as a application parameter in Process.StartInfo.Arguments and run a MFC/C++ application using the...
4
by: Christian Maier | last post by:
Hi After surfing a while I have still trouble with this array thing. I have the following function and recive a Segmentation fault, how must I code this right?? Thanks Christian Maier
8
by: S. | last post by:
Hi all, Can someone please help me with this? I have the following struct: typedef struct { char *name; int age; } Student;
0
by: veera ravala | last post by:
ServiceNow is a powerful cloud-based platform that offers a wide range of services to help organizations manage their workflows, operations, and IT services more efficiently. At its core, ServiceNow...
0
by: VivesProcSPL | last post by:
Obviously, one of the original purposes of SQL is to make data query processing easy. The language uses many English-like terms and syntax in an effort to make it easy to learn, particularly for...
0
by: jianzs | last post by:
Introduction Cloud-native applications are conventionally identified as those designed and nurtured on cloud infrastructure. Such applications, rooted in cloud technologies, skillfully benefit from...
0
by: mar23 | last post by:
Here's the situation. I have a form called frmDiceInventory with subform called subfrmDice. The subform's control source is linked to a query called qryDiceInventory. I've been trying to pick up the...
0
by: abbasky | last post by:
### Vandf component communication method one: data sharing ​ Vandf components can achieve data exchange through data sharing, state sharing, events, and other methods. Vandf's data exchange method...
2
isladogs
by: isladogs | last post by:
The next Access Europe meeting will be on Wednesday 7 Feb 2024 starting at 18:00 UK time (6PM UTC) and finishing at about 19:30 (7.30PM). In this month's session, the creator of the excellent VBE...
0
by: stefan129 | last post by:
Hey forum members, I'm exploring options for SSL certificates for multiple domains. Has anyone had experience with multi-domain SSL certificates? Any recommendations on reliable providers or specific...
0
Git
by: egorbl4 | last post by:
Скачал я git, хотел начать настройку, а там вылезло вот это Что это? Что мне с этим делать? ...
0
by: MeoLessi9 | last post by:
I have VirtualBox installed on Windows 11 and now I would like to install Kali on a virtual machine. However, on the official website, I see two options: "Installer images" and "Virtual machines"....

By using Bytes.com and it's services, you agree to our Privacy Policy and Terms of Use.

To disable or enable advertisements and analytics tracking please visit the manage ads & tracking page.