C++ :: Composition And Member Access Inside Composed Structure
Jan 18, 2013
I have a question regarding composition and accessing members "deep" inside the composed structure. For example;
class A {
private:
int m_myInt;
public:
int myInt() const {return this->m_myInt;};
void myInt(int newInt) {this->m_myInt = newInt;};
[Code] ....
Now, from somwhere I have access to an object of type B where I want to update the A::m_myInt. How would you do this without "breaking" the whole purpose of private/public members?
B myB;
myB.m_a.myInt(3); // Not allowed, and not desireable
I thought about implementing access through functons kind of like;
A & B::a() {return this->m_a;};
myB.a().myInt(3);
but I'm worried that this exposes my B::m_a-object too much. This would allow
myB.a() = A();
, right?
The following is a more desireable way of acces, but doesn't work for updating;
A const & B::a() {return this->m_a;};
myB.a().myInt(3); //Disallowed? myInt(int) is non-const.
What about this? Is this a good way of doing it?
class A {
private:
int m_myInt;
public:
int myInt() const {return this->m_myInt;};
[Code] ....
I guess it works? It would lead to a lot of data shuffling in case of larger sub-components.I would really like to do the following without exposing my components so much:
B myB;
myB.a().myInt(3);
Can it be done?
View 11 Replies
ADVERTISEMENT
Oct 7, 2014
Is it possible to assign a value to structure member inside the structure.like.....
struct control{
char tbi:2 =0;
char res:1 =0;
};
View 6 Replies
View Related
Mar 12, 2014
This is with Linux gcc
Code:
typedef struct _a
{
int id;
} a;
typedef struct _b
{
a my_a;
my_a.id = 1; // error: expected specifier-qualifier-list before "my_a"
} b;
I get error: expected specifier-qualifier-list before "my_a"
I must set the id for the kind of struct created inside the struct def because main() will be casting based on this id. Thats how I will know which structure b contains by it's id, there could be hundards of different structs with different values I will cast to the correct one and know it's members by it's id. How do I ?
View 10 Replies
View Related
Aug 27, 2013
I am trying to run a programme implementing a function with structures in c... which is:
#include<stdio.h>
#include<conio.h>
struct store {
char name[20];
float price;
int quantity;
[Code] .....
View 1 Replies
View Related
Dec 7, 2014
Why doesn't this compile?
struct hi(){
void other();
}histructure;
void hi::other(){
std::cout << "Hi!" << std::endl;
[Code] ....
Makes no sense the structure is written before the structure member function is called so why is there compile errors ??...
View 3 Replies
View Related
Aug 7, 2013
Let me say I have a structure
Code:
struct time{
char hours;
char minutes;
char seconds;
char dummy;
};
I have kept dummy as the data to be aligned.I will update hours, minutes, and seconds , but will not use dummy in any case. If I don't initialize 'dummy' does it make any errors ? Do I need to initialize hours, minutes, seconds as well before I use the structure ? If so is there any particular reason ?
View 7 Replies
View Related
Mar 5, 2014
I want to define enumeration inside a structure and use it in some other file
for eg
header.h
typedef struct dummy {
typedef enum {
ZERO,
ONE,
MAX
} NUMBERS;
// some member variables
} DUMMY; // end of the structure
otherfile.cpp
in this file i want to access both enumerations(for eg) ONE as well as the type NUMBERS.
View 1 Replies
View Related
Apr 22, 2014
#include <stdio.h>
#include <string.h>
#define MAX 22
struct inven {
int Iid;
double uprice;
int uoh;
char name[MAX];
[code].....
doesn't seem to want to display the disp* fucntions at all
View 2 Replies
View Related
Mar 19, 2014
i had a structure as follows:
struct a{
int x;
struct b{
int y;
b *next;
}b;
};
when i try to access as follows:
struct a *a;
a->b=a->b->next;
i got the following error: base operand of ‘->’ has non-pointer type
View 1 Replies
View Related
Dec 27, 2012
I have some problem while allocating memory to a union inside structure. Below is the code i am using
ON SYSTEM1:
This works fine
ON SYSTEM2:
compiler complains saying "need structure or union type" while allocating MYSTRUCT1.
If I change:
shreyas[0].UnionAttr.struct1 = (MYSTRUCT1 *) malloc (sizeof(MYSTRUCT1)
to
shreyas[0].UnionAttr->struct1 = (MYSTRUCT1 *) malloc (sizeof(MYSTRUCT1)
This compiler on SYSTEM2 is happy. but second way does not look correct to me and compiler on system 1 complains about it. Which is the correct way to allocate memory?
If first one is correct then what should i look in for to avoid this error? Could this be an issue with compiler on SYSTEM2? If i use second method on SYSTEM2 code segfaults during malloc.
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
typedef struct mystruct1 {
int a;
int b;
[Code] ....
View 3 Replies
View Related
Dec 16, 2012
In my MFC, CMyPorpertyPageDlg is derived from CPropertyPage. How to access its member function from a nonmember function in the same CPP file?.
void Non_Member_Get_PorpertyPage()
{
CMyPorpertyPageDlg* pPageDlg = ....
}
View 4 Replies
View Related
Jul 20, 2013
Say you had:
class Foo{
public:
//...
void funky();
[Code] .....
Would each instance of Foo create a new counter variable, or would it remain the same for all of them, i.e. baz.funky() would always use the same counter variable? What if the class was a template?
View 3 Replies
View Related
Mar 21, 2013
If I wanted to call a member function inside another member function, how would I do that, if it's possible?
For example, if I have Find(int key) defined already and wanted to call it while i was overloading operator+.
View 2 Replies
View Related
Jan 22, 2015
I need to know how to access the nested structure using pointer, i mean i know how to do that when i have simple structure, for example:
Code:
struct person{
char fname[16], lname[16];
int age;
}
for this example i can use
Code: (*pointer).age
or
Code: pointer->age
But if i have structure like this:
Code:
struct date{
int day, month, year;
}
struct person{
char fname[16], lname[16];
struct date birthDate;
}
Then how can i access the birthDate using pointer?
View 2 Replies
View Related
Jan 31, 2015
#include <stdio.h>
struct stack{
int n,,a[100];
}s;
int main()
[Code] ....
this program is not running why can't i access elements in this way directly.
View 1 Replies
View Related
Feb 22, 2013
I have two classes, a Package class and a Person class. The Package class has two Person objects has member variables, a Sender and a Receiver. While overloading the << operator for the Package class so that it will make an output label from everything in the Package class. Here is my code...
class Package{
public:
Person Sender;
Person Reciever;
int weight;
double cost;
friend ostream &operator<<(ostream &out, Package &pack);
[Code] .....
So my problem is on that last output line, I am unable to call Sender.getName()... etc. Is there a proper syntax so that I can access the members of the Person class while overloading the << operator for the Package class?
View 2 Replies
View Related
Jan 7, 2015
I have started working with structures so here's a side project from my text book. It's purpose is fairly simple; it asks for the sales of each quarter of the year from 4 different divisions and then calculates the average quarterly sales and total annual sales and finally displays all the data. My problem is that in the function "displayCompanyInfo" the statement
std::cout << "Division " << R.division_name << std::endl;
does not display the name of the division. With that in mind here is the code:
#include <iostream>
#include <string>
struct CompanyInfo
{
[Code]....
As you can see the last part of the output has statements that say "Division" however they do not say the name of the division afterwards. I don't understand why that is?
View 2 Replies
View Related
Jan 10, 2015
I have the following scenario :
Code:
class test {
public :
int num;
};
int main() {
test t1;
test *ptr = &t1;
int test :: *mem_ptr = &test::num;
}
I need to access mem_ptr (pointer to a class member) through :
a. object (t1)
b. pointer to the object (ptr).
How can i do that ?
View 4 Replies
View Related
Nov 10, 2013
my clsLocalStudent inherits from clsStudent. How to i set my accounts information (accountNumber, accountHolderID . . . . .)?
Code:
#include <iostream>
#include "clsInterest.h"
#include "clsDate.h"
[Code]......
View 3 Replies
View Related
Oct 24, 2013
This question is more from a design point-of-view rather than coding it to be a fully functional.
So here it goes:
I have multiple files which each require their own object of same class type (ref. First Class). File contents are read from a file to a unordered_map<std::string, std::vector<std::string>> which is either private or protected member inside First Class. First Class does not need any public functions to add, remove or change the data during runtime, but changes are only being made by checking if the file size has changed during the day, if the size is not equal to the last check, map gets updated.
Now, I have a Second Class which is a data handler class. It has public member functions with arguments that needs to be get from First Class's unordered_map using const_iterator. Which way to go with design and implementation.
I know there's two methods to do this. Re-doing handler class is also not out of the question. These two methods I'm aware of are:
1. Declare these maps to local scope, build few global functions and here we go. (Probably the easiest way.)
2. Create public member functions to a First Class which either return a pointer or a reference to a protected/private member. (I'm under the impression that I really shouldn't be doing this because of a bad coding practice.)
Note that I don't need any code here, just some other point-of-views regarding the subject itself for learning better coding practices.
View 5 Replies
View Related
May 19, 2013
I understand what a map is and all, but what purpose does multimap serve?How can you access a specific member if the keys are the same?
View 8 Replies
View Related
Jul 5, 2013
I have some doubt regarding class data member accessing in another file.Follwing code showing error.
class A://file a.cpp
{
public:
int add;
int sub;
};
//file b.cpp
extern class A
void cal()
{
A::add=A::sub;
}
View 4 Replies
View Related
Apr 3, 2013
I've created a class called Voter with a private member variable ID, also I have a variable in my main function to be ID as well. I'm trying to compare the two ID's but when I do so:
if (ID == V.ID)
I get the error - 'std::string Voter::ID' is private within this context.
I know that because it's private I can't access it, but how do I?
View 3 Replies
View Related
Sep 16, 2013
Why the void pointer passed to testb doesn't continue pointing to the allocated integer after the function call returns.
Code:
#include <stdio.h>
#include <iostream>
void* testa() {
return new int(1);
[Code] ....
View 5 Replies
View Related
Feb 17, 2015
See the simple code below. The compiler gives message:
assigning to type "char[20]" from type "char *".
I've tried everything else that seems reasonable but none works. How can I assign string Hello to the structure member?
Code:
int main() {
struct strc1
{
char msg1[20];
char msg2[5];
}
talk;
talk.msg1 = "Hello";
}
View 5 Replies
View Related
Mar 24, 2014
is it possible to make something like that?
struct type_name
{
char Status[i];
string Status[j];
.
.
} object_names;
The problem is I dont know how many statuses my object will have. Is it possible to make it in an dynamic array?
View 3 Replies
View Related